ADVERTISEMENT

【Googleドキュメント】Apps Scriptで定型文の自動挿入!insertParagraphの使い方

【Googleドキュメント】Apps Scriptで定型文の自動挿入!insertParagraphの使い方
🛡️ 超解決

Googleドキュメントで同じ文面を何度もコピー&ペーストしていませんか。特に契約書の定型句や報告書のテンプレート文は、手動で入力すると時間がかかります。この記事では、Apps ScriptのinsertParagraphメソッドを使って、ワンクリックで定型文を自動挿入する方法を解説します。スクリプトを書いたことがない方でも、コピー&ペーストでそのまま使えるサンプルコードを用意しましたので、ぜひご活用ください。

【要点】insertParagraphメソッドで定型文を自動挿入する3ステップ

  • onOpenトリガーでカスタムメニューを追加: スクリプトエディタにonOpen関数を書き、メニューバーに「定型文挿入」などの項目を表示します。
  • insertParagraphで段落を挿入: カーソル位置に新しい段落を作成し、指定したテキストを書き込みます。書式も同時に設定できます。
  • setCursorで挿入位置を制御: カーソル位置を取得して挿入する関数を組み合わせることで、任意の場所に定型文を差し込みます。

ADVERTISEMENT

Apps ScriptのinsertParagraphが便利な理由

GoogleドキュメントのApps Scriptには、文書の内容をプログラムで操作するための豊富なメソッドが用意されています。その中でもinsertParagraphは、新しい段落を文書内の任意の位置に追加できるメソッドです。このメソッドを活用すると、毎回同じ文言を手入力する手間が省けるだけでなく、書式設定や箇条書きの自動生成も可能になります。たとえば、請求書の定型文や会議の議事録テンプレートなどをボタン一つで挿入できるようになるのです。また、スクリプトはGoogleドキュメント上で直接編集・実行できるため、特別な開発環境は必要ありません。初心者の方でも、サンプルコードをコピーするだけで簡単に導入できます。

insertParagraphを使った定型文挿入の手順

ここでは、実際にスクリプトを作成してカスタムメニューから定型文を挿入するまでの手順を説明します。以下のステップに従って進めてください。

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

  1. Googleドキュメントを開く
    新しいドキュメントを開くか、既存のドキュメントを開きます。
  2. 拡張機能メニューに進む
    画面上部の「拡張機能」をクリックし、表示されたメニューから「Apps Script」を選択します。別タブでスクリプトエディタが開きます。

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

  1. デフォルトのコードを削除する
    エディタに表示されている「function myFunction() { }」をすべて削除します。
  2. サンプルコードをコピーする
    以下のコードをエディタに貼り付けます。
    function onOpen() {
      var ui = DocumentApp.getUi();
      ui.createMenu('定型文挿入')
        .addItem('契約書の文言を挿入', 'insertClause')
        .addToUi();
    }
    
    function insertClause() {
      var doc = DocumentApp.getActiveDocument();
      var body = doc.getBody();
      var cursor = doc.getCursor();
      if (cursor) {
        var element = cursor.getElement();
        var parent = element.getParent();
        var index = parent.getChildIndex(element);
        var paragraph = body.insertParagraph(index + 1, '以下、契約書の定型文です。\n\n第1条(目的)\n本契約は、甲と乙が…');
        paragraph.setHeading(DocumentApp.ParagraphHeading.HEADING2);
        paragraph.setBold(true);
      } else {
        var paragraph = body.appendParagraph('以下、契約書の定型文です。\n\n第1条(目的)\n本契約は、甲と乙が…');
        paragraph.setHeading(DocumentApp.ParagraphHeading.HEADING2);
        paragraph.setBold(true);
      }
    }
  3. コードを保存する
    フロッピーディスクアイコンをクリックするか、「Ctrl+S」で保存します。プロジェクト名は任意で構いません。

スクリプトを承認して実行する

  1. 権限を承認する
    初回実行時には、スクリプトがドキュメントにアクセスするための承認が必要です。「権限を確認」ボタンを押し、自分のGoogleアカウントを選択して許可します。
  2. ドキュメントに戻る
    スクリプトエディタのタブを閉じ、元のGoogleドキュメントのタブに戻ります。
  3. メニューを確認する
    ページをリロードすると、画面上部に「定型文挿入」という新しいメニューが表示されます。クリックすると「契約書の文言を挿入」という項目があり、クリックすれば定型文がカーソル位置に挿入されます。

insertParagraphを使う際の注意点とよくあるトラブル

カーソル位置に正しく挿入できない場合

insertParagraphは、カーソルが特定の要素(段落や表など)内にある場合に正しく動作します。カーソルが画像や表のセル内など特殊な場所にあると、予期しない位置に段落が追加されることがあります。その場合は、一度段落の先頭などにカーソルを移動してから実行してください。また、サンプルコードではgetCursor()がnullの場合に文書末尾に追加するようにしていますので、安全に動作します。

定型文に改行や書式を含めたい場合

insertParagraphは、一つの段落内に複数の改行を含めたい場合、段落をまたがって挿入する必要があります。複数段落を一度に挿入するには、insertParagraphを繰り返し呼び出すか、appendParagraphで末尾に追加してから並べ替える方法が簡単です。また、書式を設定するには、挿入後にsetBoldやsetFontSizeなどのメソッドを続けて呼び出します。サンプルコードでは見出し設定と太字を適用しています。

スクリプトがメニューに表示されない場合

メニューが表示されない原因は、onOpen関数が正しく定義されているか、スクリプトが保存されていないことです。まずスクリプトエディタで「実行」ボタンからonOpenを手動で実行してみてください。エラーが出る場合はログを確認し、関数名やメソッド名のタイプミスを修正します。また、ドキュメントをリロードしても反映されない場合は、一度スクリプトエディタを閉じてから再度開き直すと解決することがあります。

ADVERTISEMENT

insertParagraphと手動挿入の比較

項目 insertParagraph(スクリプト) 手動コピーペースト
速度 ワンクリックで瞬時に挿入 毎回コピー元を探す手間がかかる
書式の一貫性 コードで統一された書式を自動適用 貼り付け後に書式を手動調整する必要がある
カスタマイズ性 複数の定型文を切り替えたり、条件分岐が可能 定型文ごとに別のファイルを開く必要がある
エラーリスク コードのバグで意図しない挿入が起きることがある ヒューマンエラー(誤った文章を貼るなど)が発生しやすい

上の表からわかるように、insertParagraphを使うと速度と一貫性で大きなメリットがあります。ただし、初期設定に少し時間がかかることと、コードにバグがあると予期しない動作をする可能性があります。とはいえ、サンプルコードをそのまま使えば安全に動作しますので、まずは試してみることをおすすめします。

まとめ

この記事では、GoogleドキュメントでApps ScriptのinsertParagraphメソッドを使って定型文を自動挿入する方法を解説しました。サンプルコードを利用すれば、初心者の方でも簡単にカスタムメニューを作成し、ワンクリックで定型文を挿入できます。次は、日付や相手の名前を動的に挿入するなど、テンプレート機能と組み合わせてさらに効率化を図ってみましょう。また、insertTableやinsertListItemなどの関連メソッドも調べると、より高度な自動化が可能になります。


ADVERTISEMENT

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

超解決 第一編集部

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