ADVERTISEMENT

【Googleドキュメント】Apps Scriptで複数ファイルから集約!データの統合手順

【Googleドキュメント】Apps Scriptで複数ファイルから集約!データの統合手順
🛡️ 超解決

複数のGoogleドキュメントファイルに散らばったデータを一つにまとめたいとお考えではありませんか。手動でコピー&ペーストを繰り返すと、時間がかかるうえにミスも発生しやすいものです。Googleドキュメントには、Apps Scriptという機能が用意されており、複数ファイルから自動的にデータを集約できます。この記事では、Apps Scriptを使って複数ファイルからデータを統合する具体的な手順を詳しく解説します。

【要点】Apps Scriptで複数ファイルからデータを集約するポイント

  • スクリプトエディタの起動: 拡張機能メニューからApps Scriptエディタを開き、集約用のコードを記述します。
  • ファイルIDの指定: 集約元のファイルIDを配列で指定し、DocumentApp.openById()で開きます。
  • データの書き出し: getBody().getText()で内容を取得し、集約先ファイルにappendParagraph()で追記します。

ADVERTISEMENT

Apps Scriptで複数ファイルからデータを集約する仕組み

Apps ScriptはGoogleのサービスを自動化するJavaScriptベースのスクリプト環境です。Googleドキュメントでは、スクリプトを使って複数のドキュメントファイルを開き、必要なテキストデータを読み取って一つのファイルにまとめることができます。この仕組みを利用すると、手作業では数時間かかる集約作業が数秒で完了します。スクリプトはGoogleドキュメントの「拡張機能」メニューから「Apps Script」を選択して開くエディタで記述します。スクリプト内では、DocumentAppクラスを使ってドキュメントを操作します。集約元のファイルはファイルID(URLの一部)で指定します。ファイルIDは各ドキュメントのURLから抽出できる一意の識別子です。

Apps Scriptでデータを統合する具体的な手順

  1. 集約先のドキュメントを開く
    データをまとめたいGoogleドキュメントを新規作成するか、既存のファイルを開いてください。このファイルが集約先になります。
  2. Apps Scriptエディタを起動する
    メニューバーから「拡張機能」→「Apps Script」を選択します。別タブでスクリプトエディタが開きます。
  3. プロジェクト名を設定する
    エディタ左上の「無題のプロジェクト」をクリックし、わかりやすい名前(例「データ集約」)に変更します。
  4. スクリプトコードを記述する
    エディタに以下のコードを貼り付けます。
    function aggregateData() {
    var targetDoc = DocumentApp.getActiveDocument();
    var targetBody = targetDoc.getBody();
    var sourceIds = ['ファイルID1', 'ファイルID2', 'ファイルID3']; // 集約元のファイルIDを設定
    for (var i = 0; i < sourceIds.length; i++) {
    var sourceDoc = DocumentApp.openById(sourceIds[i]);
    var sourceBody = sourceDoc.getBody();
    var text = sourceBody.getText();
    targetBody.appendParagraph('--- ' + sourceDoc.getName() + ' の内容 ---');
    targetBody.appendParagraph(text);
    targetBody.appendParagraph('');
    }
    }
  5. ファイルIDを設定する
    コード内の 'ファイルID1' の部分を、集約元の各ドキュメントのファイルIDに置き換えます。ファイルIDはドキュメントのURLの /d//edit の間にある文字列です(例:1abcDEFghijklmNOPqrstUvwxYz)。
  6. スクリプトを実行する
    エディタのツールバーにある「▶ 実行」ボタンをクリックします。初回は権限の承認画面が表示されるので、内容を確認して「許可」をクリックしてください。
  7. 集約結果を確認する
    実行が完了すると、集約先のドキュメントに各ファイルの内容が追記されます。各ファイルの先頭には区切りとしてファイル名が挿入されます。

注意点とよくあるトラブル

スクリプトの実行に権限が必要になる

Apps Scriptを初めて実行する際、スクリプトがドキュメントを開いたり編集したりする権限を求められます。これはGoogleのセキュリティによるもので、承認後は問題なく動作します。承認する前に、表示されるスコープ(権限の範囲)をよく確認してください。

ファイルIDの指定を間違えるとエラーになる

ファイルIDに誤りがあると「Document X is missing (perhaps it was deleted?)」というエラーが発生します。ファイルIDはURLから正しくコピーし、余計なスペースが入らないように注意してください。

大量のファイルを処理すると時間がかかる

集約元のファイル数が多すぎる場合や、各ファイルのサイズが大きい場合、スクリプトの実行に6分以上の時間がかかることがあります。その場合は、バッチ処理やトリガーを使って分割実行する方法を検討してください。

画像や表はテキストとして取得できない

getText()メソッドはドキュメント内のテキストのみを取得します。画像や表(Table)の内容はテキストとして抽出されません。表のデータを集約したい場合は、別途表を操作するコードを追加する必要があります。

ADVERTISEMENT

手動集約とApps Script集約の比較

項目 手動コピー Apps Script
作業時間 ファイル数×数分 数秒〜1分
作業精度 ヒューマンエラーが発生しやすい 正確にコピーできる
繰り返し実行 毎回手動で行う必要がある スクリプトを実行するだけ
初期設定の手間 不要 コードの記述が必要
カスタマイズ性 低い 高い(抽出条件の変更など)

手動コピーは初期設定が不要な反面、作業時間とエラーのリスクが大きいです。Apps Scriptを使えば、一度コードを作成すれば繰り返し使え、カスタマイズも容易です。ただし、初回のコード記述に少し時間がかかる点には注意してください。

まとめ

この記事では、Apps Scriptを使って複数のGoogleドキュメントからデータを集約する手順を解説しました。スクリプトエディタでコードを記述し、ファイルIDを指定して実行するだけで、複数ファイルの内容を一つのドキュメントに自動で統合できます。手動作業と比べて時間とミスを大幅に削減できるため、定期的なデータ集約が必要な業務に役立ちます。今回はテキストの取得にgetText()を使いましたが、表や画像を含める場合は、さらに高度なスクリプトを組んでみてください。まずは少ないファイルでテスト実行し、うまく動作することを確認してから本番運用に移すことをおすすめします。


ADVERTISEMENT

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

超解決 第一編集部

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