2022/05/23に更新

【GASで時短】スプレッドシートのコメントを全て削除する

スプレッドシート小技

スプレッドシートに書き込まれた全てのコメントを削除するGoogle Apps Scriptです。コメントの応酬を消し去りたいときにどうぞ。

こんな悩みを解決します


  • コメント機能を使ってブラッシュアップしたけど、お偉方やお客さんに見せる前に消さなきゃ!
  • 自分用のメモとしてコメント機能を使ってたけど、ファイルを他の人にも共有することになった。恥ずかしいコメントを消したい!

用意するもの


特にありません。今お使いのスプレッドシートに組み込めます。

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


  • スプレッドシート内に書き込まれた全てのコメントを削除することができます。

使い方


1.事前準備

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

2.スクリプトの実行

シート1とシート2に適当にコメントを書き込みました。

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

3.実行の確認

コメントの削除を実行してもよいのか、「このスプレッドシート内の全てのコメントを削除します よろしいですか?」とメッセージが表示されます。

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

4.結果の確認

暫く待つと「削除が完了しました。スプレッドシートをリロードして確認してください」と表示されます。
セルの操作等でスプレッドシートにリアルタイムで反映されるのですが、今回のコメント操作は反映されないようです。
消えたことを確認するために、スプレッドシートをリロードする必要があります。

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

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

スクリプト


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

function onOpen() {
  // スプレッドシートを開いたときに実行される関数

  // UIの取得
  const ui = SpreadsheetApp.getUi()

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

  // メニューに追加するボタン
  menu.addItem('スプレッドシート内のすべてのコメントを削除する', 'delete_comments');

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

function delete_comments() {

  // 画面にアラートを表示するためにUIオブジェクトを取得
  const ui = SpreadsheetApp.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 ss = SpreadsheetApp.getActiveSpreadsheet();

  // スプレッドシートのファイルIDを取得する。コメントの取得に利用する。
  const ss_id = ss.getId();

  // ファイルIDを指定し、Drive APIでコメントを取得する。最大取得数は100個のため、最大値を指定する。
  const comments = Drive.Comments.list(ss_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(ss_id, comment_id);

  }

  ui.alert('削除が完了しました。スプレッドシートをリロードして確認してください');

}

関連するアプリ


【GASで便利に】スプレッドシートを開いたときにメッセージを表示する

スプレッドシートを開いたときにメッセージを表示するGoogle Apps Scriptです。更新履歴などのお知らせ、業務の引き継ぎ、注意事項などを表示するのに使えます。ユーザーによるスクリプトの動作承認は不要です。

【GASで便利に】スライドを開いたときにメッセージを表示する

スライドを開いたときにメッセージを表示するGoogle Apps Scriptです。更新履歴などのお知らせ、業務の引き継ぎ、注意事項などを表示するのに使えます。ユーザーによるスクリプトの動作承認は不要です。

【GASで便利に】ドキュメントを開いたときにメッセージを表示する

ドキュメントを開いたときにメッセージを表示するGoogle Apps Scriptです。更新履歴などのお知らせ、業務の引き継ぎ、注意事項などを表示するのに使えます。ユーザーによるスクリプトの動作承認は不要です。

【GASで品質向上】特定のセルが編集されたときにメッセージを表示する

特定のセルが編集されたときにメッセージを表示するGoogle Apps Scriptです。編集をさせたくないときは保護してしまえばよいのですが、編集後に「本当にその内容で大丈夫?」と振り返って欲しいときに使えるかもしれません。ユーザによるスクリプトの動作承認は不要です。

【GASで品質向上】特定のセルが編集されたときにメールで通知する

特定のセルが編集されたときにメールを送信するGoogle Apps Scriptです。大事な部分が更新された時にすぐに知りたいときに使えるかもしれません。

【GASで品質向上】長い数式が入っているセルにメモを入れてもらう

一定の文字数以上で構成された数式が入っているセルを探し、そのセルにメモが入っているかどうかをチェックするGoogle Apps Scriptです。長い数式はわかりにくいので説明を書いてもらうために作りました。

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

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

【GASで時短】スプレッドシートのメモを全て削除する

スプレッドシートに書き込まれた全ての「メモ」を削除するGoogle Apps Scriptです。思考の過程を隠したい時などにどうぞ。

【GASで時短】全シートの数式を再セットする

入力されている数式を再度セットしなおすGoogle Apps Scriptです。数式に誤りがないのに何らかの原因で動かない・・・というときに。

タグ一覧

最新のアプリ

人気のアプリ

myfunc.jp