ADVERTISEMENT

【Googleドキュメント】Apps Scriptでドキュメントを自動生成!テンプレートからの複製

【Googleドキュメント】Apps Scriptでドキュメントを自動生成!テンプレートからの複製
🛡️ 超解決

毎回同じフォーマットのドキュメントを作成する作業に時間を取られていませんか。Googleドキュメントには、テンプレートから複製を自動化できるApps Scriptという機能があります。この記事では、Apps Scriptを使ってテンプレートファイルを複製し、ドキュメントを自動生成する方法を解説します。スクリプトの書き方から実行手順、よくあるエラー対策までを網羅しますので、業務の効率化に役立ててください。

【要点】Apps Scriptでテンプレートからドキュメントを自動複製する方法

  • DriveApp.getFileById() でテンプレートを取得: テンプレートファイルのIDを指定してコピー元を特定します。
  • file.makeCopy() で複製を作成: 指定したフォルダに新しいドキュメントを生成します。
  • DocumentApp.openById() で編集: 複製後に本文や表を書き換えて内容をカスタマイズします。

ADVERTISEMENT

Apps Scriptでドキュメントを自動生成する仕組み

Apps ScriptはGoogleのサービスを自動化するためのスクリプト言語です。このスクリプトを使うと、Googleドキュメントのテンプレートファイルを複製し、必要に応じて文字や表を差し替えることができます。例えば、請求書や契約書、報告書などの定型文書を毎回手動でコピーして編集する必要がなくなります。スクリプトはGoogleドライブ上で動作し、トリガーを設定すれば定期的に実行することも可能です。事前にテンプレートとなるドキュメントを一つ用意し、そのファイルIDを取得しておくことが前提条件です。

テンプレートからドキュメントを複製する手順

ここでは、実際にApps Scriptを記述してテンプレートからドキュメントを複製する手順を説明します。スクリプトエディタを開き、コードを記述し、実行するまでの流れを順に追います。

スクリプトエディタを開く前準備

  1. テンプレートファイルを用意する
    複製の元になるGoogleドキュメントを作成します。ファイル名は「請求書テンプレート」などわかりやすい名前にしておきます。
  2. テンプレートのファイルIDを確認する
    テンプレートファイルを開き、URLの「/d/」の後ろから次の「/」までの英数字の列がファイルIDです。これをメモしておきます。
  3. スクリプトを保存するフォルダを作成する
    複製したドキュメントを保存するフォルダをGoogleドライブ内に作成します。フォルダのURLからフォルダIDも取得しておくと便利です。

スクリプトコードを記述する

  1. スクリプトエディタを開く
    Googleドライブの任意の場所で右クリックし、「その他」→「Google Apps Script」を選択します。または、新しいGoogleドキュメントを開き、「拡張機能」→「Apps Script」からも開けます。
  2. コード.gsにサンプルコードを貼り付ける
    以下のコードをコピーして貼り付けます。テンプレートIDとフォルダIDは実際のものに書き換えてください。
    function createDocFromTemplate() {
    var templateId = 'ここにテンプレートのファイルIDを入力';
    var folderId = 'ここに保存先フォルダのIDを入力';
    var templateFile = DriveApp.getFileById(templateId);
    var folder = DriveApp.getFolderById(folderId);
    var newFile = templateFile.makeCopy('新規ドキュメント名', folder);
    var doc = DocumentApp.openById(newFile.getId());
    var body = doc.getBody();
    body.replaceText('{{日付}}', Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd'));
    body.replaceText('{{顧客名}}', '株式会社サンプル');
    doc.saveAndClose();
    }
  3. スクリプトを保存する
    Ctrl+S(Macの場合はCmd+S)で保存します。プロジェクト名を「ドキュメント自動生成」などに変更しておきます。

スクリプトを実行する

  1. 関数を選択して実行する
    エディタ上部の関数選択ドロップダウンで「createDocFromTemplate」を選び、▶(再生)ボタンをクリックします。
  2. 権限を承認する
    初回実行時には権限の確認画面が表示されます。アカウントを選択し、「許可」をクリックしてスクリプトにドライブやドキュメントへのアクセスを許可します。
  3. 実行結果を確認する
    スクリプトが正常に終了すると、指定したフォルダに「新規ドキュメント名」のドキュメントが作成されます。内容にテンプレートの本文と、{{日付}}や{{顧客名}}が置き換わった文字が含まれていれば成功です。

よくあるエラーと対処法

Apps Scriptを初めて使うときには、いくつかのエラーに遭遇することがあります。ここでは代表的なエラーの原因と解決策を紹介します。

スクリプトが権限エラーになる場合

「Exception: You do not have permission to call DriveApp.getFileById」といったエラーが表示されることがあります。この原因は、スクリプトの実行に必要な権限が不足しているためです。対処法としては、スクリプトエディタの左側にある「プロジェクトの設定」から「Google Cloud Platform (GCP) プロジェクト」を確認し、適切なスコープを追加する必要があります。簡単な方法は、一度スクリプトを実行して権限承認画面を正しく通過させることです。承認時に「詳細」をクリックして安全でないページに進む必要がある場合もあります。また、スクリプトが複数のサービス(DriveとDocument)を使う場合は、両方のスコープが要求されるため、再度承認を求められたら許可してください。

テンプレートファイルが見つからないエラー

「Exception: File not found」が発生する場合、指定したファイルIDが間違っているか、ファイルが削除されている可能性があります。まず、ファイルIDが正しいかどうかを確認します。IDはURLの「/d/」と「/edit」の間の部分です。また、テンプレートファイルがゴミ箱に入っていないかも確認してください。さらに、ファイルの共有設定が制限されていると、スクリプトからアクセスできないことがあります。テンプレートファイルの共有範囲を「リンクを知っている全員」または「対象アカウントと共有」に設定しておくと安心です。

ADVERTISEMENT

手動コピーとApps Script自動化の比較

比較項目 手動コピー Apps Script自動化
作業時間(1件あたり) 約2〜3分 スクリプト実行時間は数秒
ミスのリスク 日付や顧客名の書き換え忘れがある 置き換えルールが固定されるため高い精度
大量処理への対応 一件ずつ手作業のため非効率 ループ処理で一括生成が可能
初期設定の手間 不要 スクリプト作成と権限設定が必要
カスタマイズ性 自由に変更できる コード修正で柔軟に対応可能

以上の比較から、毎日のように定型文書を作成する業務では、Apps Scriptによる自動化が大きな時間削減につながります。一方、たまにしか使わないテンプレートであれば手動コピーでも十分でしょう。用途に応じて選択してください。

まとめ

この記事では、GoogleドキュメントのApps Scriptを使ってテンプレートからドキュメントを自動生成する方法を解説しました。DriveApp.getFileByIdでテンプレートを取得し、makeCopyで複製し、DocumentAppで編集することで、定型文書の作成を効率化できます。スクリプト内でreplaceTextを使用すれば、日付や顧客名などのプレースホルダーを自動で置き換えることも可能です。次はトリガーを設定して定時実行する方法や、スプレッドシートのデータを元に一括生成する応用にも挑戦してみてください。Apps Scriptを使いこなして、ドキュメント作成の自動化を実現しましょう。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。