Googleドキュメントに書き込まれた全てのコメントを削除するGoogle Apps Scriptです。コメントされすぎて嫌になったときにどうぞ。
特にありません。今お使いのGoogleドキュメントに組み込めます。
本アプリは「Drive API」を使用します。
スクリプトエディタの左ペインにある「サービス」から、Drive APIを追加してください。
タイトルとサブタイトルに無意味なコメントを追加してみました。これを消してみましょう。
上のメニューにある「スクリプト実行」から「ドキュメント内のすべてのコメントを削除する」を実行します。
コメントを削除してもよいのか確認を求められます。「このドキュメント内の全てのコメントを削除します よろしいですか?」とメッセージが表示されます。
「この操作は元に戻すことができません!(たぶん) 本当にコメントを消し去っていいですか?」と表示され、本当に消してもよいのかもう一度確認されます。
本アプリを使ってコメントを削除すると、元に戻せない(かもしれない)ので2度確認しています。
暫く待つと「削除が完了しました。ドキュメントをリロードして確認してください」と表示されます。
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('削除が完了しました。ドキュメントをリロードして確認してください');
}