2022/05/24に更新

【GASで時短】ドキュメントのコメントを全て削除する

ドキュメント小技

Googleドキュメントに書き込まれた全てのコメントを削除するGoogle Apps Scriptです。コメントされすぎて嫌になったときにどうぞ。

こんな悩みを解決します


  • コメントされまくってなんとか文書が完成した・・・コメントは全部消したいけどめんどくさい!
  • 共有していたらゴミコメントだらけに・・・全部消したい。

用意するもの


特にありません。今お使いのGoogleドキュメントに組み込めます。

このスクリプトで出来ること


  • Googleドキュメント内に書き込まれた全てのコメントを削除することができます。

使い方


1.事前準備

本アプリは「Drive API」を使用します。
スクリプトエディタの左ペインにある「サービス」から、Drive APIを追加してください。

2.スクリプトの実行

タイトルとサブタイトルに無意味なコメントを追加してみました。これを消してみましょう。

上のメニューにある「スクリプト実行」から「ドキュメント内のすべてのコメントを削除する」を実行します。

3.実行の確認

コメントを削除してもよいのか確認を求められます。「このドキュメント内の全てのコメントを削除します よろしいですか?」とメッセージが表示されます。

「この操作は元に戻すことができません!(たぶん) 本当にコメントを消し去っていいですか?」と表示され、本当に消してもよいのかもう一度確認されます。
本アプリを使ってコメントを削除すると、元に戻せない(かもしれない)ので2度確認しています。

4.結果の確認

暫く待つと「削除が完了しました。ドキュメントをリロードして確認してください」と表示されます。
DocumentAppクラスによる操作であればすぐに変更が反映されますが、コメント削除はDrive APIを使っているせいか反映されないようです。
消えたことを確認するために、ドキュメントをリロードする必要があります。

リロードすると、コメントが消え去っています!

コメントが1件も存在しない場合は「コメントが1つも見つかりませんでした」というメッセージが表示され、スクリプトが終了します。
このアプリは最大100件のコメントを削除できます。確実に全てのコメントを削除するには、「1件も見つかりません」と出るまでスクリプトを複数回実行してください。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00090/index.html
 */

function onOpen(){
  // ドキュメントを開いたときに実行される関数

  // uiを取得
  const ui = DocumentApp.getUi();

  // メニューの表示名
  const menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('ドキュメント内のすべてのコメントを削除する', 'delete_document_comments');

  // メニューを画面に追加する
  menu.addToUi();

}

function delete_document_comments() {

  // 画面にアラートを表示するためにUIオブジェクトを取得
  const ui = DocumentApp.getUi();

  // 実行の確認メッセージを表示する
  const response1 = ui.alert('このドキュメント内の全てのコメントを削除します\n\nよろしいですか?', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたらスクリプトを終了する
  if (response1 == ui.Button.CANCEL) {
    return;
  }

  // コメント削除はもとに戻すことができない?かもしれないので、確認を2段階で行う
  const response2 = ui.alert('この操作は元に戻すことができません!(たぶん)\n\n本当にコメントを消し去っていいですか?', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたらスクリプトを終了する
  if (response2 == ui.Button.CANCEL) {
    return;
  }

  // 開いているドキュメントオブジェクトを取得
  const doc = DocumentApp.getActiveDocument();

  // ドキュメントのファイルIDを取得する。コメントの取得に利用する。
  const doc_id = doc.getId();

  // ファイルIDを指定し、Drive APIでコメントを取得する。最大取得数は100個のため、最大値を指定する。
  const comments = Drive.Comments.list(doc_id, { 'maxResults': 100 });

  // コメントが1件もない場合はメッセージを表示してスクリプトを終了する。
  if (comments['items'].length == 0) {
    ui.alert('コメントが1つも見つかりませんでした');
    return;
  }

  // コメントを1件ずつ削除していく
  for (let i = 0; i < comments['items'].length; i++) {

    // コメントIDを取得する
    let comment_id = comments['items'][i]['commentId'];

    // Drive APIを使用してコメントを削除する
    Drive.Comments.remove(doc_id, comment_id);

  }

  ui.alert('削除が完了しました。ドキュメントをリロードして確認してください');

}

関連するアプリ


タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp