ADVERTISEMENT

【Googleドキュメント】期限付き共有の自動失効通知!失効前の事前案内

【Googleドキュメント】期限付き共有の自動失効通知!失効前の事前案内
🛡️ 超解決

Googleドキュメントでファイルを共有する際、有効期限を設定できることをご存知でしょうか。しかし、期限が近づいても通知が来ないため、うっかり失効してしまうことがあります。この記事では、共有設定での有効期限の設定方法と、Apps Scriptを使った自動失効通知と事前案内の実装方法を解説します。これらの手順を実施すれば、期限前に自動でメールを受け取れるようになります。

【要点】期限付き共有の自動失効通知を実現する3つのステップ

  • 共有設定の「有効期限」オプション: ファイルごとにアクセスを自動失効させる日付を設定します。
  • Apps Scriptのスクリプト: 期限をチェックして通知メールを送信するカスタム関数を作成します。
  • トリガーの設定: スクリプトを定期的に実行して自動化します。

ADVERTISEMENT

なぜ自動失効通知が必要なのか

Googleドキュメントでは、共有リンクに有効期限を設定することで、指定した日時に自動的にアクセスを失効させられます。しかし、標準機能では期限が近づいても所有者や編集者に通知が届きません。そのため、重要な共有リンクが突然使えなくなるトラブルが発生します。この問題を解決するには、自分で通知の仕組みを構築する必要があります。特に、外部パートナーとの期限付き共有では、失効前に連絡を入れておきたいケースが多いでしょう。

共有設定で有効期限を設定する手順

まず、Googleドキュメントの標準機能を使って共有リンクに有効期限を設定します。この設定自体は簡単で、数クリックで完了します。

  1. 共有ダイアログを開く
    Googleドキュメントを開き、右上の「共有」ボタンをクリックします。
  2. 「リンクのコピー」をクリック
    「リンクを知っている全員」などアクセス権を選択し、その下にある「リンクのコピー」をクリックします。
  3. 「有効期限」を設定
    表示されたメニューで「有効期限」オプションをオンにし、カレンダーから日付を選択します。この日付を過ぎるとリンクは無効になります。
  4. 保存して完了
    設定後、「共有」をクリックして変更を保存します。これで期限付き共有の準備が整いました。

Apps Scriptで自動失効通知を実装する手順

次に、Apps Scriptを使って期限前に通知メールを送る仕組みを作成します。Googleドライブのファイルリストを取得し、各ファイルの共有許可と有効期限をチェックして、期限が近づいているものを抽出しメールで通知します。

1. スクリプトエディタを開く

  1. Googleドキュメントを開く
    通知機能を追加したいドキュメントを開き、メニューから「拡張機能」→「Apps Script」を選択します。
  2. 新しいプロジェクトを作成
    スクリプトエディタが開いたら、デフォルトのコードを削除し、以下のコードを貼り付けます。

2. 通知スクリプトを作成する

  1. コードを記述
    次のコードをコピーして貼り付けます。
function sendExpirationNotifications() {
  var files = DriveApp.getFiles();
  var now = new Date();
  var threshold = 3; // 通知を送る残り日数
  while (files.hasNext()) {
    var file = files.next();
    var sharing = file.getSharingAccess();
    if (sharing == DriveApp.Access.ANYONE_WITH_LINK || sharing == DriveApp.Access.DOMAIN_WITH_LINK) {
      var expiration = file.getExpirationTime();
      if (expiration) {
        var diffDays = Math.floor((expiration - now) / (1000*60*60*24));
        if (diffDays <= threshold && diffDays >= 0) {
          var subject = file.getName() + ' の共有期限が近づいています';
          var body = 'ファイル「' + file.getName() + '」の共有リンクの期限は ' + expiration + ' です。\n\n' +
                     '残り ' + diffDays + ' 日です。必要に応じて期限を延長してください。\n\n' +
                     'ファイルURL: ' + file.getUrl();
          MailApp.sendEmail(Session.getActiveUser().getEmail(), subject, body);
        }
      }
    }
  }
}
  1. スクリプトを保存
    プロジェクト名を「ExpirationNotifier」などに変更し、保存アイコンをクリックします。

3. トリガーを設定して自動実行する

  1. トリガーページを開く
    左側のメニューで「トリガー」アイコン(時計)をクリックし、「トリガーを追加」をクリックします。
  2. トリガーを構成
    「実行する関数」に「sendExpirationNotifications」を選択します。「時間ベースのトリガー」を選び、間隔を「1日おき」などに設定します。保存して承認を求められたら許可します。

ADVERTISEMENT

注意点とよくある失敗

権限の承認を忘れる

スクリプトを初めて実行する際、Googleドライブとメールへのアクセス許可が必要です。承認手続きを完了しないとスクリプトは動作しません。必ず最初に手動で関数を実行して承認を促してください。

トリガーの実行間隔を適切に設定する

通知は期限の3日前に送られるようコードで指定しています。トリガーを毎日実行すれば、期限が3日以内になったファイルに対して毎日通知が届きます。間隔が長すぎると、通知が間に合わない場合があります。

ファイルの共有設定が正しいか確認する

スクリプトは「リンクを知っている全員」または「組織内のリンクを知っている全員」で共有され、かつ有効期限が設定されたファイルのみを対象としています。特定のユーザーのみへの共有では動作しません。必要に応じて条件を変更してください。

標準機能とApps Scriptの比較

項目 標準機能 Apps Script
有効期限の設定 可能 間接的(スクリプトで設定は不可)
自動失効 自動で行われる 不要(標準機能に依存)
事前通知 不可 可能(メール送信)
カスタマイズ性 低い 高い
難易度 簡単 中程度

まとめ

Googleドキュメントの共有リンクに有効期限を設定しても、標準では失効前の通知は届きません。しかし、この記事で紹介したApps Scriptを使えば、期限が近づいたファイルを自動で検出し、メールで通知することが可能です。まずは共有設定で有効期限を設定し、次にスクリプトを導入してトリガーを設定してください。これにより、重要な共有が突然切れるトラブルを防げます。さらに、通知の条件やメール内容をカスタマイズすれば、より柔軟な運用ができるでしょう。


ADVERTISEMENT

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

超解決 第一編集部

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