libro
www.tuyano.com
初心者のためのGoogle Apps Scriptプログラミング入門

Googleドキュメントにアクセスする (3/6)

作成:2011-08-08 09:07
更新:2011-11-04 17:02

■DocumentオブジェクトとParagraph

ドキュメントには、さまざまな要素があります。Googleドキュメントでは、テキストやグラフィック、表などを使った複雑な文書が作成できますから、それらについてそれぞれ扱いを覚えなければいけません。

まずは、もっとも基本となる「テキスト」の扱いから考えましょう。テキストは、基本的に「段落パラグラフ)」単位で扱います。もちろん、段落内の細かなテキストを扱うこともありますが、基本は「段落ごとに処理する」ものと考えて下さい。

この段落は、「Paragraph」というオブジェクトとして用意されています。ドキュメントにテキストを記述する場合は、新しいパラグラフを作ってDocumentオブジェクトに追加する、といったやり方をするのです。――では、まずParagraphを作成し、Documentに追加するためのメソッドからまとめましょう。

・Paragraphをドキュメントに追加する
変数 = 《Document》.appendParagraph( テキスト );
変数 = 《Document》.appendParagraph(《Paragraph》);

・Paragraphをドキュメントの指定場所に挿入する
変数 = 《Document》.insertParagraph( インデックス, テキスト );
変数 = 《Document》.insertParagraph( インデックス,《Paragraph》);

Paragraphオブジェクトは、new Paragraphというようにしてオブジェクトを生成しません。Documentにあるメソッドを使ってパラグラフをドキュメントに組み込み、その組み込んだパラグラフを示すParagraphオブジェクトを返す、という形になっています。作成したパラフラフを操作する場合は、この返値のオブジェクトを保管し操作する、というわけです。

appendParagraphは、文書の末尾に新しいパラグラフを追加します。insertParagraphは、第1引数で指定したインデックス番号の位置(要するに何番目のパラフラフの後か、ということ)にパラグラフを追加します。いずれも、パラグラフを作成して追加し、そのパラグラフであるParagraphオブジェクトを返します。

このParagraphオブジェクトには、そのパラグラフのフォントや表示などに関する各種のメソッドが用意されています。これらを呼び出すことで、パラグラフのテキスト表示を操作できます。これらも主なものをいかに整理しておきましょう。

・Paragraphの配列を得る
変数 = 《Document》.getParagraphs();
ドキュメントのパラグラフすべてを、Paragraphオブジェクトの配列として返します。配列には、ドキュメントの冒頭から文末までのパラグラフが順番に収められます。

・色に関する属性の操作
変数 =《Paragraph》.getForegroundColor();
変数 =《Paragraph》.getBackgroundColor();
変数 = 《Paragraph》.setForegroundColor( テキスト );
変数 = 《Paragraph》.setBackgroundColor( テキスト )

・フォントに関する属性の操作
変数 =《Paragraph》.getFontFamily();
変数 =《Paragraph》.getFontSize();
変数 = 《Paragraph》.setFontFamily( 真偽値 );
変数 = 《Paragraph》.setFontSize( 整数 );

・フォントスタイルに関する属性の操作
変数 =《Paragraph》.getBold();
変数 =《Paragraph》.getItalic();
変数 =《Paragraph》.getUnderline();
変数 = 《Paragraph》.setBold( 真偽値 );
変数 = 《Paragraph》.setItalic( 真偽値 );
変数 = 《Paragraph》.setUnderline( 真偽値 );
値を取り出すget~メソッドだけでなく、設定をするset~メソッドにも返値がありますが、これは設定を行ったオブジェクト自身が返されます。こうすることで、メソッドチェーン(〇〇.set△△().set□□()……というようにメソッドをつなげた書き方)が利用できるようにしてあるのですね。

では、これらのメソッドを使った簡単なサンプルをあげておきましょう。これは、ドキュメントのテキストの背景色とテキスト色をグリーン系で統一し、フォントサイズを次第に小さくしていくサンプルです。openByIdの引数には、それぞれのドキュメントのIDを指定します。あらかじめ、何行かのテキストが書いてある状態で試して下さい。

ここでは、getParagraphsParagraphオブジェクト配列を取得し、それを繰り返しで順に操作しています。setBackgroundColorsetForegroundColorで背景色とテキスト色を変更し、setFontSizeでフォントサイズを変更しています。色の値は、スタイルシートなどでおなじみの16進数によるテキストを指定します。フォントサイズは整数値を渡します。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function setParagraphs(){
  var doc = DocumentApp.openById("……IDを指定……");
  var fsize = 36;
  var ps = doc.getParagraphs();
  for(var p in ps){
    var obj = ps[p];
    obj.setBackgroundColor("#EEFFEE");
    obj.setForegroundColor("#006600");
    obj.setFontSize(fsize);
    fsize -= fsize > 9 ? 4 : 0;
  }
}

※関連コンテンツ

「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る