質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1104閲覧

特定のシート、特定の列に変更があった場合、メールの送信をしたいです。

Carson

総合スコア2

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/06/16 06:45

編集2021/06/17 04:06

前提・実現したいこと

特定のシート「管理表」シートC列に変更があった場合、自分にメール通知をしたいです。

発生している問題・エラーメッセージ

「管理表」シートC列以外についても変更通知が来てしまう。

該当のソースコード

function sendNotification() { var ss = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシート var sheet = ss.getSheetByName("管理表"); if(sheet.getName() != "管理表"){return; } var Cell = sheet.getActiveCell().getA1Notation();//セルの範囲を取得 var row = sheet.getActiveRange().getRow(); var cellvalue = ss.getActiveCell().getValue().toString(); var recipients = "XXX@gmail.com";//通知メール宛先 var message = ''; if(Cell.indexOf('C')!=-1){ message = sheet.getRange('C'+ sheet.getActiveCell().getRowIndex()).getValue() } var subject = 'Update to '+sheet.getName();//件名 var body = sheet.getName() + ' 変更されました。 ' + ss.getUrl() + ' 対象の行: «' + row + '». 変更点: «' + cellvalue + '»';//本文 MailApp.sendEmail(recipients, subject, body);//メール送信のまとめ };

試したこと

var currentSheetName = SpreadsheetApp.getActiveSheet().getName();
if( currentSheetName != "管理表" ) { return; } //

を追加したら、管理表における変更に絞れたものの、
C列以外にも反応してしまうようになりました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sawa

2021/06/17 01:45

GASの質問なので Google Apps Script のタグを付けましょう
Carson

2021/06/17 04:08

Google Apps Script のタグを付けました!ありがとうございます。
guest

回答1

0

ベストアンサー

試したことに書かれてる流れと一緒です。

GAS

1var col = sheet.getActiveRange().getColumn(); //アクティブな列を取得して 2 3if(col != 3) return; //C列 = 列番号が3 でない場合は終了 4 5

投稿2021/06/17 04:51

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Carson

2021/06/17 08:45

単純な話でしたね・・( 一一) こちらで解決できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問