【GAS】Gドキュメントの書式をスクリプトで制御する方法(上付き下付き文字、色、サイズなど)

GAS

どうもcoto.です。
今回はGoogle Apps Script でドキュメントを作成しながら書式も設定していく方法の紹介。

コードと少し解説

文字のサイズ

文書の途中で文字のサイズを変更するコードです。

function size() {
  var doc    = DocumentApp.openById('ドキュメントのID'); //ドキュメントのID
  var body   = doc.getBody(); //本文を取得

  //新しい段落で「文字サイズ10」を10pt で挿入
  var paragraph = body.appendParagraph('文字サイズ10');  
  paragraph.editAsText().setFontSize('10');

  //同じ段落に「文字サイズ20」を20pt で追記 
  var addText = paragraph.appendText('文字サイズ20');
  addText.editAsText().setFontSize('20');
  }

結果は以下のようになります。

文字サイズ変更の結果

文字の色・ハイライト(文字の背景色)

文字色と背景色を変更するコードです。

function color() {
  var doc    = DocumentApp.openById('ドキュメントのID'); //ドキュメントのID
  var body   = doc.getBody(); //本文を取得

  //新しい段落で「文字の色は赤」を赤色 で挿入
  var paragraph = body.appendParagraph('文字の色は赤');  
  paragraph.editAsText().setForegroundColor('#ff0000');

  //同じ段落に「背景の色は赤」を赤色ハイライト付きで追記 
  var addText = paragraph.appendText('背景の色は赤');
  addText.editAsText().setForegroundColor('#000000'); //上で文字色を赤にしているので黒に戻します
  addText.editAsText().setBackgroundColor('#ff0000');
  }

11行目は「文字の色は赤」で設定した赤が残っているので、文字色を黒に戻しています。
必要なければ削除してかまいません。

結果は以下のようになります。

文字色・ハイライト色変更の結果

太字(bold)・斜体(イタリック・italic)

文字を太字や斜体にするコードです。

function bolIta() {
  var doc    = DocumentApp.openById('ドキュメントのID'); //ドキュメントのID
  var body   = doc.getBody(); //本文を取得

  //新しい段落で「文字を太字にします」をbold で挿入
  var paragraph = body.appendParagraph('文字を太字にします');  
  paragraph.editAsText().setBold(true);

  //同じ段落に「letters italic」をイタリックで追記 
  var addText = paragraph.appendText('letters italic');
  addText.editAsText().setBold(false); //上で指定した太字を解除します
  addText.editAsText().setItalic(true);
  }

他の書式も同じですが、範囲を指定せず単純に設定すると
その後のテキストにも適用されるので必要なければ
解除のためのコード(ここでは11行目)を挿入します。

結果は以下のようになります。

太字、斜体にした結果

上付き文字・下付き文字

文字を上付き、下付きにするコードです。

function superSub() {
  var doc    = DocumentApp.openById('ドキュメントのID
'); //ドキュメントのID
  var body   = doc.getBody(); //本文を取得

  //新しい段落で「上付き文字にします」を上付き文字で挿入
  var paragraph = body.appendParagraph('上付き文字にします');  
  paragraph.editAsText().setTextAlignment(DocumentApp.TextAlignment.SUPERSCRIPT);
  
  //同じ段落に「いったん解除します」を通常の文字で追記 
  var addText1 = paragraph.appendText('いったん解除します');
  addText1.editAsText().setTextAlignment(DocumentApp.TextAlignment.NORMAL); 

  //同じ段落に「下付き文字にします」を下付き文字で追記 
  var addText2 = paragraph.appendText('下付き文字にします');
  addText2.editAsText().setTextAlignment(DocumentApp.TextAlignment.SUBSCRIPT);
  }

他の書式設定とは異なり、.setTextAlignmentの中で
NORMAL(標準)、SUPERSCRIPT(上付き)、SUBSCRIPT(下付き)
を制御しています。

結果は以下のようになります。

上付き文字、下付き文字にした結果

範囲を指定して書式を設定する場合

ここまでは単純にサイズ、色などを変更してきましたが、
特定の部分のみを変更したい場合もあると思います。

その場合は、

function position() {
  var doc    = DocumentApp.openById('ドキュメントのID
'); //ドキュメントのID
  var body   = doc.getBody(); //本文を取得

  //新しい段落で「1.0x10-3」の-3のを上付き文字で挿入
  var paragraph = body.appendParagraph('1.0x10-3'); 
  paragraph.editAsText().setTextAlignment(6, 7, DocumentApp.TextAlignment.SUPERSCRIPT);
  }

7行目のように何文字目から何文字目までを変更するか指定します。
ポイント(?)は1, 2, 3…と数え始めるのではなく、0, 1, 2…と数えることです。

結果は以下のようになります。

文字範囲を指定して書式設定した結果

御託

文字サイズ、色はそこそこ情報があるのですが、
上付き下付きについてはほぼ皆無だったので試行錯誤。

皆さんあまり使わないのでしょうか?
GASではなく普通にドキュメントを使うときもボタンが見つからず。
ただ…うちの業界では必須なんです。

分子式とかNMRのシグナル表記とかね!!!(本業ばれる)

公式のGoogle Developersページにも一見載っていないようでしたので、
同じ場面で躓いている方のお役に立てれば。

コメント