ADVERTISEMENT

【Googleドキュメント】Apps Scriptでコメント一覧の取得!コメント集計の自動化

【Googleドキュメント】Apps Scriptでコメント一覧の取得!コメント集計の自動化
🛡️ 超解決

Googleドキュメントで複数人と共同編集をしていると、コメントが大量にたまることがあります。それぞれのコメントを手動で確認して集計するのは、とても手間がかかる作業です。本記事では、Apps Scriptを使ってドキュメント内のすべてのコメントを一覧で取得し、集計を自動化する方法を解説します。この方法を使えば、コメントの管理が格段に効率化します。

【要点】Apps Scriptでコメント一覧を自動取得し、スプレッドシートに出力する方法

  • DocumentApp.getActiveDocument().getBody().getComments(): ドキュメント本文内のすべてのコメントを取得します。
  • getAnchorElement() と getContent(): コメントが付与された要素とコメント本文を取得し、一覧化します。
  • スプレッドシートへの出力: 取得したコメントデータをスプレッドシートに書き出して、集計や分析を容易にします。
  • トリガーによる自動化: 時間主導型トリガーを設定すると、定期的にコメント一覧を更新できます。

ADVERTISEMENT

Apps Scriptがドキュメントのコメントを取得する仕組み

Google Apps Scriptは、GoogleドキュメントのAPIを利用して、ドキュメント内のさまざまな要素にアクセスできます。コメントに関しては、DocumentAppクラスのgetComments()メソッドを使うことで、本文中のすべてのコメントオブジェクトを取得できます。各コメントオブジェクトには、コメントが付けられた要素(アンカー)、コメントの内容、作成者、作成日時などのプロパティが含まれます。これらをループ処理で一つずつ取り出し、スプレッドシートに書き出すことで、コメント一覧の自動生成が実現できます。また、getAnchorElement()で取得した要素から、そのテキストや段落情報を抽出することも可能です。これにより、どの部分に対してコメントが付いたのかを具体的に把握できます。

Apps Scriptでコメント一覧を取得してスプレッドシートに出力する手順

  1. スクリプトエディタを開く
    コメントを取得したいGoogleドキュメントを開き、メニューから「拡張機能」→「Apps Script」を選択します。スクリプトエディタが新しいタブで開きます。
  2. スクリプトにコードを記述する
    エディタに以下のコードを貼り付けます。
    function getCommentsToSheet() {
      var doc = DocumentApp.getActiveDocument();
      var body = doc.getBody();
      var comments = body.getComments();
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      sheet.clear();
      sheet.appendRow(["日時", "作成者", "コメント", "アンカーテキスト"]);
      for (var i = 0; i < comments.length; i++) {
        var comment = comments[i];
        var date = comment.getDate();
        var author = comment.getAuthor();
        var content = comment.getContent();
        var anchor = comment.getAnchorElement();
        var anchorText = anchor ? anchor.getText() : "該当なし";
        sheet.appendRow([date, author, content, anchorText]);
      }
    }
  3. スプレッドシートを準備する
    上記のコードは、アクティブなスプレッドシートのアクティブシートに出力します。事前に新しいスプレッドシートを作成し、スクリプトエディタでそのスプレッドシートのIDを取得しておくことをおすすめします。例えば、SpreadsheetApp.openById('スプレッドシートID')を使用すると、特定のスプレッドシートに出力できます。
  4. 関数を実行する
    スクリプトエディタでgetCommentsToSheet関数を選択し、実行ボタンをクリックします。初回は権限の承認が必要です。表示されたダイアログで許可を与えてください。実行後、ログを確認してエラーがないことを確認します。
  5. 出力結果を確認する
    実行後、スプレッドシートを開くと、コメントの一覧が日時、作成者、コメント本文、アンカーテキストの順に出力されていることを確認できます。必要に応じてフィルタや並べ替えを行ってください。

スクリプト実行時によくあるトラブルと対処法

コメントが一つも取得できない場合

ドキュメントにコメントが存在しないか、スクリプトが正しく権限を持っていない可能性があります。まず、手動でコメントを追加してから再度実行してみてください。また、スクリプトエディタの「実行」→「関数を実行」の前に、ドキュメントにアクセス権があることを確認します。スクリプトの権限スコープにhttps://www.googleapis.com/auth/documentsが含まれているかも確認してください。

スプレッドシートが開かれていないエラー

スクリプトがSpreadsheetApp.getActiveSpreadsheet()を使用する場合、そのスクリプトはスプレッドシートに紐づいている必要があります。ドキュメントのスクリプトからスプレッドシートを操作するには、スプレッドシートを明示的に開く必要があります。例えば、SpreadsheetApp.openById('スプレッドシートID')を使用します。スプレッドシートIDはURLの/d/の後の文字列です。

権限承認が通らない場合

初回実行時やスコープが変更された場合、承認が必要です。スクリプトエディタの上部に警告が表示されたら、「権限を確認」から承認してください。組織のポリシーで制限されている場合は、管理者に問い合わせてください。また、スクリプトの概要ページでプロジェクトのスコープを確認し、必要最小限のスコープに絞ることも重要です。

ADVERTISEMENT

コメント取得の方法比較:手動 vs Apps Script

項目 手動でコメントを確認する方法 Apps Scriptを使う方法
作業時間 コメント数に比例して時間がかかる スクリプト実行は数秒で完了
データ出力 手作業でコピー・ペーストが必要 スプレッドシートに自動出力
再利用性 毎回手動操作が必要 スクリプトを保存すれば何度でも実行可能
カスタマイズ性 ほとんどカスタマイズ不可 コードを変更してフィルタや集計を追加可能

まとめ:コメント管理を自動化して作業効率を向上させる

Apps Scriptを使うことで、Googleドキュメント内のすべてのコメントを自動的に一覧化し、スプレッドシートに出力できます。この方法により、コメントの管理作業が大幅に効率化されます。次に試す応用として、コメントの作成者ごとに集計する、特定の日付範囲のコメントだけを抽出する、コメント内容に基づいてタグを自動付与するなどのカスタマイズが可能です。また、時間主導型トリガーを設定すれば、週次や月次で自動実行することもできます。ぜひ、getComments()メソッドを活用して、コメント管理の自動化を実現してください。


ADVERTISEMENT

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

超解決 第一編集部

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