電気羊の執務室

魔法を作る仕事をしています。

GoogleAppsScriptで差し込み印刷

Google Apps Scriptで、ドキュメントの差し込みを行うサンプルを作りました。

完成品は別途シェアするとして、内容とハマったポイントを記録しておきます。

やりたいこと

Wordの差し込み印刷のような事が、Google Docsでやりたかったです。 具体的には、こういう感じです。

  1. Google Documentの文書(テンプレート文書と呼びます)に本文と置換用のプレースホルダを書いておきます。
  2. 別のスプレッドシート(実行シートと呼びます)に、差込用の言葉(相手の名前など)を書いておきます。
  3. スプレッドシートでスクリプトを実行します。
  4. プレースホルダが差込用の単語に置き換わって、テンプレート文書の後半に、新しい本文が生成されます。(テンプレートを置き換えてしまうと何度も使えないので)
  5. たくさん作れないと意味がないので、スプレッドシート上にたくさんの文書のURLと、それぞれの差し込み内容を書いておくと、一括で生成します。

この記事で作るもの

  1. テンプレート文書
  2. Google Drive上にドキュメント文書を作り、テンプレート文書とします。
  3. テンプレート文書には、本文とプレースホルダを記述します。
  4. テンプレート文書のドキュメントIDをコピーしておきます。
  5. 実行シート
  6. Google Drive上にスプレッドシートを作り、実行シートとします。

  7. スクリプトファイル

  8. 実行シートから作ります。
  9. テンプレートから本文を生成する部分です。

作成手順

1.テンプレート文書を作る 今回は、テンプレート文書の中に、テンプレート部分と出力結果を生成するスタイルにします。

テンプレート文書はひとつで、出力結果を分けたい場合は、別途スクリプトを調整してください。

文書の中では、テンプレート部分と出力結果を水平線で区切ります。最初の水平線以前がテンプレート部分、それ以降が出力結果となります。

テンプレート部分に、本文とプレースホルダを記述します。 今回のサンプルでは、{最初の差し込み内容}{ふたつ目の差し込み内容}という文字列を使っています。この波カッコ内がプレースホルダとなり、出力結果では差込文字列と置き換わります。

2.実行シートを作る

Google Drive内にスプレッドシートを作り、実行シートとします。 シートの内容は、以下のようにします。

  • 最初の行をタイトル行とし、以下の項目を定義します。
    • ドキュメントID
    • 差込用文字列
  • 2行目以下はデータ行です。
    • ドキュメントIDに、テンプレート文書のドキュメントIDを指定します。
    • 差込用文字列に、プレースホルダと置き換える文字列を指定します。

3.スクリプトファイルを作る

実行シート上で『ツール → スクリプトエディタ...』を選択し、スクリプトエディタを起動します。

スクリプトエディタのファイルを、任意の名前に変更します。

Comments