【Googleスプレッドシート】Googleドキュメントとの連携!データ転記とテンプレート化

【Googleスプレッドシート】Googleドキュメントとの連携!データ転記とテンプレート化
🛡️ 超解決

Googleスプレッドシートで管理しているデータを、Googleドキュメントのレポートや議事録に転記したいとお考えではありませんか。手動でコピー&ペーストを繰り返すと、更新漏れや誤入力が発生しやすくなります。この記事では、スプレッドシートのデータをドキュメントに効率的に転記する方法と、テンプレートを活用して自動化する手順を詳しく解説します。リンク貼り付けやApps Scriptを使えば、データの同期も簡単に実現できます。

【要点】スプレッドシートからドキュメントへのデータ転記とテンプレート化の3つの方法

  • 手動コピー&ペースト: スプレッドシートのセル範囲をコピーしてドキュメントに貼り付ける方法です。簡単ですが、データ更新時に手動で再貼り付けが必要です。
  • リンクを貼り付け(動的連携): ドキュメントに「リンクを貼り付け」することで、スプレッドシートの値を動的に反映させます。元データを更新するとドキュメントも自動更新されます。
  • Apps Scriptによるテンプレート化: スクリプトでドキュメントを作成し、スプレッドシートのデータを差し込みます。定型文書の一括生成に最適です。

ADVERTISEMENT

スプレッドシートとドキュメントを連携する仕組み

GoogleスプレッドシートとGoogleドキュメントは、ともにGoogleのクラウドアプリケーションです。両者はインターネット経由でデータをやり取りできますが、直接のリアルタイム同期機能は備わっていません。そこで活用するのが「リンクを貼り付け」機能やApps Scriptです。リンク貼り付けでは、ドキュメント内にスプレッドシートのセル範囲を埋め込み、元データが変更されるとドキュメント側も更新されます。Apps Scriptを使えば、スプレッドシートの内容をもとにドキュメントを新規作成し、特定のテンプレートにデータを流し込む処理を自動化できます。この連携により、月次レポートや個別通知文書の作成時間を大幅に短縮できます。

データ転記とテンプレート化の具体的な手順

ここでは3つの方法を順番に説明します。最初の2つは特別な知識がなくてもすぐに試せます。3つ目のApps Scriptは少しハードルが高いですが、一度設定すれば繰り返し使える強力な手段です。

方法1:手動コピー&ペースト

  1. スプレッドシートで範囲を選択する
    転記したいセル範囲をドラッグして選択し、Ctrl+C(Macの場合はCmd+C)でコピーします。
  2. ドキュメントに貼り付ける
    Googleドキュメントを開き、貼り付けたい位置にカーソルを合わせてCtrl+V(Cmd+V)で貼り付けます。すると表形式でデータが挿入されます。
  3. 書式を調整する
    貼り付けた表の列幅やフォントを必要に応じて変更します。この方法では元データが更新されてもドキュメントは自動反映されません。

方法2:リンクを貼り付け(動的連携)

  1. スプレッドシートで範囲をコピーする
    方法1と同様に転記したい範囲を選択し、Ctrl+Cでコピーします。
  2. ドキュメントで「リンクを貼り付け」を選択する
    ドキュメントの貼り付け位置で右クリックし、表示されるメニューから「リンクを貼り付け」を選びます。または「編集」メニューから「貼り付け」の横にある▼をクリックして「リンクを貼り付け」を選択します。
  3. 自動更新を確認する
    貼り付けた表はスプレッドシートとリンクされており、元のセル値を変更するとドキュメント側も自動で更新されます。更新のたびに「更新」ボタンが表示されるので、クリックすると最新データに切り替わります。

方法3:Apps Scriptでテンプレート化

この方法では、Googleドキュメントのテンプレートファイルを用意し、スプレッドシートのデータを差し込んで新しいドキュメントを自動生成します。以下の手順はスクリプトの例です。

  1. Googleドキュメントでテンプレートを作成する
    あらかじめ「テンプレート」用のドキュメントを作成し、データ差し込み位置に「{{名前}}」「{{金額}}」などのプレースホルダーを記述します。ファイルIDをメモしておきます。
  2. スプレッドシートでApps Scriptを開く
    スプレッドシートの「拡張機能」メニューから「Apps Script」を開きます。デフォルトのコード.gsに以下のスクリプトを記述します。
  3. スクリプトを記述して実行する
    下記のサンプルコードをコピーして貼り付け、テンプレートのファイルIDやデータ範囲を自分の環境に合わせて修正します。関数を実行すると、新しいドキュメントが作成されます。

以下はサンプルコードです。スプレッドシートのA1:C3の範囲を読み取り、テンプレート内のプレースホルダーを置き換えて新しいドキュメントを生成します。

function generateDocsFromTemplate() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getRange("A1:C3").getValues();
  var templateId = "【テンプレートのファイルID】";
  var templateFile = DriveApp.getFileById(templateId);
  
  for (var i = 0; i < data.length; i++) {
    var docId = templateFile.makeCopy(data[i][0] + "_書類").getId();
    var doc = DocumentApp.openById(docId);
    var body = doc.getBody();
    body.replaceText("{{名前}}", data[i][0]);
    body.replaceText("{{金額}}", data[i][1]);
    body.replaceText("{{日付}}", data[i][2]);
    doc.saveAndClose();
  }
}

連携時の注意点とよくあるトラブル

リンク貼り付けで更新が反映されない

リンク貼り付けを行った後、ドキュメントを開いても自動更新されないことがあります。その場合はドキュメント上部に「更新」ボタンが表示されますので、それをクリックしてください。また、スプレッドシート側で行や列を挿入・削除するとリンクがずれる可能性があるため、範囲を固定して使うことをおすすめします。

Apps Scriptで権限エラーが発生する

スクリプトを初めて実行する際、承認が必要です。「権限の確認」ダイアログが表示されたら、自分のGoogleアカウントを選び、スクリプトが必要とする権限(ドキュメントの作成・編集など)を承認してください。また、テンプレートファイルのIDが正しいか、ファイルが存在するか確認しましょう。

テンプレートの書式が崩れる

replaceTextメソッドはテキストの置換のみを行い、フォントや色などの書式は保持されません。もし複雑な書式を維持したい場合は、プレースホルダーにスタイルを適用しておくか、書式ごとコピーするスクリプトを追加で記述する必要があります。

ADVERTISEMENT

各方法の比較

方法 自動更新 難易度 適した場面
手動コピー&ペースト なし 一度だけの転記
リンクを貼り付け あり(手動更新) 頻繁に更新されるデータをドキュメントで参照したい場合
Apps Scriptテンプレート化 あり(完全自動) 中〜高 定型文書を大量に生成する場合

まとめ

GoogleスプレッドシートとGoogleドキュメントの連携には、手動コピー、リンク貼り付け、Apps Scriptによるテンプレート化の3つの方法があります。リンク貼り付けは手軽に動的連携を実現し、Apps Scriptは定型文書の一括生成に威力を発揮します。ぜひ自分の業務に合わせて最適な方法を選び、データ転記の手間を大幅に削減してください。次のステップとして、スプレッドシートのQUERY関数と組み合わせて抽出条件に応じたドキュメント生成にも挑戦してみると、さらに応用範囲が広がります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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