Google スプレッドシート:特定セルの数値変更に基づくメール通知システム

JavaScript

このプログラムは、Google スプレッドシート上の特定のセル(デフォルトで”A1″)の数値が一定の条件(この例では5以上)に合致した場合に、指定されたメールアドレスに通知を送る自動化スクリプトです。このスクリプトはGoogle Apps Scriptで書かれており、スプレッドシートに簡単に組み込むことができます。

注意: メールを送信する機能を使用するためには、適切な権限の設定が必要です。

このシステムは、データの監視、自動レポート、アラート通知など、さまざまな用途で活用することができます。

使用技術

  • Google Apps Script: スプレッドシートのデータを操作し、メール通知を行います。
  • Google スプレッドシート: データの格納と管理が行われます。
  • Google Mail API(MailApp): メール通知機能を提供します。

機能

  • 値の監視: スプレッドシートの特定のセル(この例では”A1″)の値を監視します。
  • 条件チェック: 監視しているセルの値が指定した条件(この例では5以上)に合致するかどうかをチェックします。
  • メール通知: 条件に合致した場合、指定されたメールアドレスに通知メールを送信します。
  • セル値のリセット(オプショナル): メール送信後、セルの値をリセットすることも可能です(この例では0にリセット)。

ソースコード

JavaScript
// この関数はGoogleスプレッドシートの特定のセル(この場合は"A1")の値が5以上になった場合にメールを送信します。
function sendEmailIfValueIsHigh() {
  
  // アクティブなスプレッドシートのオブジェクトを取得します。
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // アクティブなスプレッドシート内で現在アクティブなシート(タブ)のオブジェクトを取得します。
  var sheet = ss.getActiveSheet();
  
  // "A1"セルの値を取得します。
  var cellValue = sheet.getRange("A1").getValue();
  
  // セルの値が5以上かどうかをチェックします。
  if(cellValue >= 5) {
    
    // メールを送る先のメールアドレスを設定します。
    var recipientEmail = "your_email@example.com";
    
    // メールの件名を設定します。
    var subject = "Google Spreadsheet Notification";
    
    // メールの本文を設定します。
    var body = "The value in cell A1 is " + cellValue + ", which is greater than or equal to 5.";
    
    // メールを送信します。
    MailApp.sendEmail(recipientEmail, subject, body);
    
    // オプション:メールを送信した後で"A1"セルの値を0にリセットします。
    sheet.getRange("A1").setValue(0);
  }
}

// MIT License
// Copyright (c) 2023 [ANJI]
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

下記のようにコードを修正すると、条件に合致してメールが送信された後でも、”A1″セルの値はそのまま保持されます。

JavaScript
// メールを送信します。
MailApp.sendEmail(recipientEmail, subject, body);

// この行を削除することで、セルの値はリセットされません。
// sheet.getRange("A1").setValue(0);

使い方

  1. Google スプレッドシートを開く: 新しいスプレッドシートを作成するか、既存のスプレッドシートを開きます。
  2. スクリプトエディタを開く: スプレッドシートのメニューから 拡張機能 > Apps Script を選択してスクリプトエディタを開きます。
  3. コードを貼り付け: スクリプトエディタに上記のJavaScriptコードを貼り付けます。
  4. メールアドレスの設定: コード内の var recipientEmail = “your_email@example.com“; の部分に送信先のメールアドレスを設定します。
  5. 保存と認証: コードを保存した後、Googleによる認証を行います。これはメールを送信する権限をスクリプトに与えるために必要です。
  6. トリガーの設定(オプション): スクリプトエディタの左側のトリガーアイコン(時計のようなアイコン)をクリックして、特定のイベント(例えば、シートが編集されたとき)にスクリプトが実行されるように設定できます。
  7. テスト実行: スクリプトエディタで 実行 ボタンを押すか、スプレッドシートの”A1″セルの値を手動で5以上に設定してテストを行います。
  8. 確認: 条件に合致した場合、設定したメールアドレスに通知が送られてくるか確認します。
  9. リセットオプション: コード内でセルの値をリセットする行があれば(この例ではある)、その行を削除するかコメントアウトして、セル値のリセットを無効にすることもできます。

    以上が基本的な使い方になります。これで、特定のセルの値が条件に合致した場合にメール通知が行われるように設定できます。

コメント

タイトルとURLをコピーしました