簡単ガイド!GASでチェックボックスの状態をメールで通知する方法

スプレッドシートのチェックボックスの状態が変わったら、メールで通知する仕組みをGASで作りたいんだけど、どうしたらいいんだろう?初心者だから全然わからなくて…
猫男
猫男
catman
catman
それなら、catmanがGASでチェックボックスの状態をメールで送信する方法を教えてやろう。ステップを追えば簡単さ。まずはステップごとに見ていこうか!

GASでチェックボックスの状態をメールで通知する方法

GASでチェックボックスの状態を判定し、メールを送信するスクリプトを書いてみよう。

スプレッドシートからGASのエディタ開いてくれよな。


function notifyCheckboxChange(e) {
 var sheet = e.source.getActiveSheet();
 var range = e.range;

 // チェックボックスのセルを確認
 if (range.getColumn() == 2 && range.getRow() > 1) { 
   var value = range.getValue();
   var emailAddress = "example@example.com"; 
   var subject = "チェックボックスの状態が変わりました";
   var message = "チェックボックスの状態が " + (value ? "チェックされた" : "チェックが外された") + "に変わりました。";
   
   GmailApp.sendEmail(emailAddress, subject, message);
 }
}

このコードでは、スプレッドシートの変更イベントを利用して、特定のチェックボックスの状態を確認し、GmailAppを使ってメール送信を行っている。

Google スプレッドシート上の「チェックボックスの変更」を検知して、メール通知を送る関数だ。

この関数単体では自動で動かない。次に紹介するように「インストール型のトリガー」の設定が必要さ。

トリガーを設定する

GASでスクリプトを実行するためには、トリガーを設定する必要がある。これにより、自動でイベントを検知してスクリプトが動作するようになる。

スクリプトエディタのメニューから「編集」-「現在のプロジェクトのトリガー」を選択し、新規でトリガーを追加する。

「notifyCheckboxChange」を「スプレッドシートの変更時」に設定しよう。

練習問題

1. スクリプトを修正して、メールの送信先を異なるアドレスに変更しよう。

2. メールの件名を「更新通知」に変更してみてください。

 

 

解答・解説

例えば、次のように修正すると良いだろう。


function notifyCheckboxChange(e) {
 var sheet = e.source.getActiveSheet();
 var range = e.range;

 // チェックボックスのセルを確認するコードはそのまま
 if (range.getColumn() == 2 && range.getRow() > 1) { 
   var value = range.getValue();
   var emailAddress = "new_email@example.com"; // メールアドレスを変更
   var subject = "更新通知"; // 件名を変更
   var message = "チェックボックスの状態が " + (value ? "チェックされた" : "チェックが外された") + "に変わりました。";
   
   GmailApp.sendEmail(emailAddress, subject, message);
 }
}

このように修正することで、メールの送信先や件名を変更することが可能だ。

GmailApp.sendEmail() は、メールを送信するためのGASのメソッドで、アドレス、件名、本文を指定する。

すごい!こんなに簡単にGASでメール送信ができるなんて!これで仕事がはかどるよ。ありがとうcatman!
猫男
猫男
catman
catman
大丈夫さ。GASをうまく使えば、業務がぐんと効率化するはずだ。引き続き頑張るといいぞ!