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

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

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

■パラグラフ内のテキスト取得とText

では、段落(パラグラフ)よりも細かくドキュメントのテキストを扱うことはできないのでしょうか。例えば、段落内の特定のテキストの色を変更したり、といったことはできないのか? これは、できます。これには、パラグラフより更に細かいテキストのオブジェクト「Text」を利用します。

Googleドキュメントが、基本的には「HTMLを使った文書作成を行うもの」である、という点を思い出して下さい。HTMLでは、<div>タグなどを使って段落単位でスタイルを設定することができます。これが、今までやったParagraphによる設定です。が、その他に、<span>タグのようなもの(インライン要素というもの)を使って、段落内の特定のテキストにスタイルを適用したりすることもできます。これを扱う場合に用いられるのが「Text」です。

このTextオブジェクトは、パラグラフと同様、Paragraphに新しいテキストを追加したり挿入したりして作成し、操作を行います。では、Text作成のためのメソッドから整理しましょう。

・TextをParagraphに追加する
変数 = 《Paragraph》.appendText( テキスト );
変数 = 《Paragraph》.appendText(《Text》);

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

appendTextは、そのパラグラフの末尾にテキストを追加します。insertTextは、パラグラフの指定した要素の後にテキストを追加します。これらを呼び出すとテキストがパラグラフに追加され、その追加されたテキストを示すTextオブジェクトが返されます。

Paragprah内のテキスト操作は、「一文字ずつ細々と操作する」という形ではなく、このようにまとまったテキストのかたまりをパラグラフに追加し、それを操作する、という形になります。これは、例えば<span>タグでくくられたテキストが<div>タグ内に追加される、というようなイメージで考えるとわかりやすいでしょう。

このTextにも、Paragraphと同じように属性を操作するためのメソッド類が用意されています。これにより、テキストを細かく設定することができるでしょう。

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

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

・フォントスタイルに関する属性の操作
変数 =《Text》.getBold();
変数 =《Text》.getItalic();
変数 =《Text》.getUnderline();
変数 = 《Text》.setBold( 真偽値 );
変数 = 《Text》.setItalic( 真偽値 );
変数 = 《Text》.setUnderline( 真偽値 );

基本的な扱い方はParagraphとほぼ同じですから、だいたいわかるでしょう。では、以下に簡単な利用例を挙げておきましょう。ここでは、3つのテキストにそれぞれ色を設定して1つのパラグラフを作成しています。

まず最初に、appendParagraph("");として、空のテキストのパラグラフを追加しておきます。そして、これに対しappendTextでテキストを追加していきます。そして追加したTextsetForegroundColorを設定し、それぞれ変更しているというわけです。やり方さえわかればとても簡単ですね。

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

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

●プログラム・リスト●

function makeParagraph(){
  var doc = DocumentApp.openById("……IDを指定……");
  var p = doc.appendParagraph("");
  var t1 = p.appendText("Welcome to ");
  t1.setForegroundColor("#FF0000").setFontSize(24);
  var t2 = p.appendText("Google ");
  t2.setForegroundColor("#00FF00").setFontSize(24);
  var t3 = p.appendText("Apps Script.");
  t3.setForegroundColor("#0000FF").setFontSize(24);
}

※関連コンテンツ

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