2022/02/17に更新

【GASで便利に】シートが編集された時にメール通知する

スプレッドシートメール

スプレッドシートの内容が変更されるたびにメールで通知するGoogle Apps Scriptです。標準機能でスプレッドシートのオーナーへはメール通知が可能ですが、任意の宛先に送れるものを作ってみました。

こんな悩みを解決します


  • スプレッドシートが更新されたらすぐに知りたい。でも自分がスプレッドシートのオーナーではないため、標準機能では通知できない・・・。

用意するもの


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

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


スプレッドシートが更新されたときに、任意の宛先にメール通知することが出来ます。
メールの本文には以下が含まれています。

  • スプレッドシート名
  • 変更されたシート名
  • 変更されたセルの番地
  • 変更前の値
  • 変更後の値
  • スプレッドシートのURL

使い方


1.準備

このスクリプトはトリガーを使います。通常のスクリプトの設置後に、下記内容でトリガーを登録してください。

  • 実行する関数: notify_when_edit
  • デプロイ時に実行: HEAD
  • イベントのソース: スプレッドシートから
  • イベントの種類: 編集時

2.空白セルに書き込んだ場合

未使用のセルに値を書き込んでみます。

このようなメールが届きます。

3.セルの値を書き換えた場合

さきほどのセルの値を書き換えてみます。

メールが届きました。編集前後の値が確認できます。

4.注意点

頻繁に編集されるシートの場合、Gmailの送信数上限にひっかかってしまうかもしれません。

スクリプト


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

function notify_when_edit(e) {

  if (!e) {
    // eに値がない場合(IDEで関数を実行したとき等)は何もせず終了する
    return;
  }

  // 送信先メールアドレスを定義する
  const mail_to = '';

  // ファイル名の取得
  const ss_name = e.source.getName();

  // シート名の取得
  const sheet_name = e.source.getSheetName();

  // 編集されたセル番地の取得
  const edited_cell = e.range.getA1Notation();

  // 編集前後の値を取得
  const value_before = e.oldValue;
  const value_after = e.range.getValue();

  // ファイルのURLを取得
  const url = e.source.getUrl();

  // メール本文を組み立てる
  const mail_body = [];
  mail_body.push('ファイル名: ' + ss_name);
  mail_body.push('シート名: ' + sheet_name);
  mail_body.push('セル: ' + edited_cell);
  mail_body.push('編集前: ' + value_before);
  mail_body.push('編集後: ' + value_after);
  mail_body.push(url);

  // メールを送信する
  GmailApp.sendEmail(mail_to, 'スプレッドシートが変更されました', mail_body.join('\n'));

}

関連するアプリ


【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で監視】シートが編集されたことを任意のタイミングでメール通知する

標準機能では即時と1日1回しか選べない「更新時の通知」を、任意のタイミングで行うGoogle Apps Scriptです。

【GASで便利に】セルを編集した人と日時をメモに追加する

セルが編集されたときに、編集したユーザーのメールアドレスと日時をメモ欄に記載するGoogle Apps Scriptです。

タグ一覧

最新のアプリ

人気のアプリ

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