Googleドキュメントの数が増えてくると、古いドキュメントを見落としがちになります。不要なドキュメントが溜まってしまい、探したいファイルが見つかりにくくなるからです。この記事では、Apps Scriptを使って定期的に更新されていないドキュメントをメールで通知する方法を解説します。さらに、アーカイブ運用を自動化するテクニックも紹介します。
【要点】Apps Scriptで古いドキュメントを自動通知し、アーカイブ運用を効率化する方法
- Dr.Folder.getFiles() と getLastUpdated() で最終更新日を取得: 特定フォルダ内のファイルをループし、30日以上更新がないドキュメントを抽出します。
- MailApp.sendEmail() で定期メール通知: 抽出したドキュメントの一覧をメールで送信し、手動確認の手間を省きます。
- 時間主導型トリガーで毎日自動実行: トリガーを設定することで、指定した時刻にスクリプトが自動起動し、完全に手間をかけずに運用できます。
ADVERTISEMENT
目次
Apps Scriptで古いドキュメントを通知する仕組み
Apps ScriptはGoogleのクラウド上で動作するJavaScriptベースのスクリプト言語です。Googleドキュメントのファイルにアクセスするには、Drive APIを利用します。具体的には、Dr.Folderクラスで特定のフォルダを指定し、getFiles()メソッドでファイルのリストを取得します。各ファイルの最終更新日はgetLastUpdated()メソッドで取得でき、現在の日時との差を計算することで、一定期間以上更新がないドキュメントを抽出できます。抽出した情報は、MailApp.sendEmail()を使ってメールで通知します。このスクリプトを時間主導型トリガーで毎日実行すれば、手動で確認する必要がなくなります。
定期的に古いドキュメントを通知するスクリプトを作成する手順
ここでは、特定のGoogleドライブフォルダ内で30日以上更新がないドキュメントを毎日メール通知するスクリプトを作成します。
- スクリプトエディタを開く
Googleドライブで対象のフォルダを開き、右上の「Apps Script」アイコンをクリックするか、拡張機能メニューから「Apps Script」を選択します。新しいスクリプトプロジェクトが開きます。 - スクリプトの内容を記述する
以下のコードをエディタに貼り付けます。function notifyOldDocs() { var folderId = '【ここにフォルダIDを入力】'; var folder = DriveApp.getFolderById(folderId); var files = folder.getFiles(); var cutoffDate = new Date(); cutoffDate.setDate(cutoffDate.getDate() - 30); var oldFiles = []; while (files.hasNext()) { var file = files.next(); if (file.getLastUpdated() < cutoffDate) { oldFiles.push(file.getName() + ' (更新日: ' + file.getLastUpdated() + ')'); } } if (oldFiles.length > 0) { var subject = '【自動通知】古いドキュメント一覧'; var body = '以下のドキュメントは30日以上更新されていません。\n\n' + oldFiles.join('\n'); MailApp.sendEmail('you@example.com', subject, body); } }フォルダIDは、対象フォルダのURL末尾の英数字部分です。メール送信先は実際のアドレスに変更します。
- トリガーを設定する
左メニューの「トリガー」アイコン(時計マーク)をクリックし、「トリガーを追加」を選択します。関数を「notifyOldDocs」、時間ベースのトリガーを「日付ベースのタイマー」、時刻を任意の時刻に設定して保存します。初回は承認が必要です。 - テスト実行する
エディタ上で関数を選択し、「実行」ボタンをクリックしてテストします。メールが届くことを確認します。正しく動作しない場合は、スクリプトのログ(表示→ログ)でエラーを確認できます。
アーカイブ運用を自動化する追加テクニック
通知だけでなく、古いドキュメントを自動的にアーカイブフォルダに移動することも可能です。以下のようにスクリプトを拡張します。
- アーカイブフォルダを作成する
Googleドライブに「アーカイブ」などのフォルダを作成し、そのフォルダIDを取得します。 - 移動するコードを追加する
スクリプト内で、conditionが成立したファイルに対してfile.moveTo(archiveFolder)を実行します。ただし、移動後はリンクが変わるので注意が必要です。以下のように、通知と移動を同時に行う関数を別途作成することもできます。 - 二重トリガーを避ける
通知と移動を別々の関数にしてそれぞれトリガーを設定するか、一つの関数で両方を実行するかを決めます。一つの関数で実行する場合は、移動したドキュメントを通知リストから除外するロジックを追加します。
注意点とよくあるトラブル
トリガーが実行されない場合
トリガーが正しく設定されていても、スクリプトの実行権限が正しくないと動作しません。特に、初回の承認時に必要な権限をすべて許可してください。また、Googleアカウントのスクリプト実行制限(1日あたりのメール送信数など)に引っかかる場合があります。大量のドキュメントがある場合は、一度に送信するメールのサイズに注意してください。
フォルダIDの指定ミス
フォルダIDが間違っていると、スクリプトはエラーを返します。正しいフォルダIDは、フォルダを開いたときのURLの「folders/」以降の英数字部分です。共有ドライブの場合は、フォルダIDの取得方法が異なりますので注意してください。
メールが届かない場合
送信先のメールアドレスが正しいか確認します。また、スクリプトが正常に実行されても、条件を満たすファイルがない場合はメールが送信されません。テスト用に古いファイルを作成して試すと良いでしょう。
手動通知との比較表
| 項目 | 手動通知 | Apps Script自動通知 |
|---|---|---|
| 作業時間 | 毎回10〜30分 | 初期設定後はゼロ |
| ヒューマンエラー | 見落としが発生しやすい | プログラムが確実にチェック |
| アーカイブ連携 | 手動で移動が必要 | スクリプトで自動移動可能 |
| カスタマイズ性 | 低い | 高い(条件やアクションを自由に変更) |
まとめ
この記事では、Apps Scriptを使って古いGoogleドキュメントを定期的に通知し、アーカイブ運用を自動化する方法を解説しました。スクリプトを作成しトリガーを設定すれば、毎日自動で更新されていないドキュメントをチェックし、メールで知らせてくれます。さらに、ファイルの自動移動にも応用できます。次は、通知結果をGoogleスプレッドシートに記録するなど、データの可視化にも挑戦してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Google Driveの人気記事ランキング
- 【SharePoint】SharePointで「同期」ボタンが表示されない時の確認手順
- 【PDF】スマホからPCへPDFをケーブル無しで送る!クラウド(Googleドライブ/iCloud)同期の基本
- 【SharePoint】ドキュメントライブラリを開けない時のアクセス許可と保存場所チェック
- 【Googleスプレッドシート】テンプレートギャラリーを使い倒すコツ!業務別の活用例
- 【Googleスプレッドシート】Apps Scriptが動かない・実行されない時のチェックポイント
- 【Googleアカウント】会社アカウントと個人アカウントを分けたい時の運用方法
- 【Googleドキュメント】WordファイルをDocs形式に変換!互換性と書式維持
- 【Googleドキュメント】AndroidからWordファイル開く!アプリ選択の指定
- 【Googleドキュメント】Google Classroomで配布した文書が編集できない時のコピー設定
- 【Googleスプレッドシート】Excel互換で保存!xlsxエクスポートの設定
