簡単ガイド!GASでチェックボックスの状態をメールで通知する方法
スプレッドシートのチェックボックスの状態が変わったら、メールで通知する仕組みをGASで作りたいんだけど、どうしたらいいんだろう?初心者だから全然わからなくて…

猫男

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
大丈夫さ。GASをうまく使えば、業務がぐんと効率化するはずだ。引き続き頑張るといいぞ!