Google Apps Scriptで、ドキュメントの差し込みを行うサンプルを作りました。
完成品は別途シェアするとして、内容とハマったポイントを記録しておきます。
やりたいこと
Wordの差し込み印刷のような事が、Google Docsでやりたかったです。 具体的には、こういう感じです。
- Google Documentの文書(テンプレート文書と呼びます)に本文と置換用のプレースホルダを書いておきます。
- 別のスプレッドシート(実行シートと呼びます)に、差込用の言葉(相手の名前など)を書いておきます。
- スプレッドシートでスクリプトを実行します。
- プレースホルダが差込用の単語に置き換わって、テンプレート文書の後半に、新しい本文が生成されます。(テンプレートを置き換えてしまうと何度も使えないので)
- たくさん作れないと意味がないので、スプレッドシート上にたくさんの文書のURLと、それぞれの差し込み内容を書いておくと、一括で生成します。
この記事で作るもの
- テンプレート文書
- Google Drive上にドキュメント文書を作り、テンプレート文書とします。
- テンプレート文書には、本文とプレースホルダを記述します。
- テンプレート文書のドキュメントIDをコピーしておきます。
- 実行シート
Google Drive上にスプレッドシートを作り、実行シートとします。
スクリプトファイル
- 実行シートから作ります。
- テンプレートから本文を生成する部分です。
作成手順
1.テンプレート文書を作る 今回は、テンプレート文書の中に、テンプレート部分と出力結果を生成するスタイルにします。
テンプレート文書はひとつで、出力結果を分けたい場合は、別途スクリプトを調整してください。
文書の中では、テンプレート部分と出力結果を水平線で区切ります。最初の水平線以前がテンプレート部分、それ以降が出力結果となります。
テンプレート部分に、本文とプレースホルダを記述します。 今回のサンプルでは、{最初の差し込み内容}{ふたつ目の差し込み内容}という文字列を使っています。この波カッコ内がプレースホルダとなり、出力結果では差込文字列と置き換わります。
2.実行シートを作る
Google Drive内にスプレッドシートを作り、実行シートとします。 シートの内容は、以下のようにします。
- 最初の行をタイトル行とし、以下の項目を定義します。
- ドキュメントID
- 差込用文字列
- 2行目以下はデータ行です。
- ドキュメントIDに、テンプレート文書のドキュメントIDを指定します。
- 差込用文字列に、プレースホルダと置き換える文字列を指定します。
3.スクリプトファイルを作る
実行シート上で『ツール → スクリプトエディタ...』を選択し、スクリプトエディタを起動します。
スクリプトエディタのファイルを、任意の名前に変更します。