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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

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

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

1回答

3774閲覧

チェックボックスにチェックが入ったらメールで通知したいです。

WAKBAdeGAnS

総合スコア1

Google Apps Script

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

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2021/08/13 06:01

前提・実現したいこと

始めてGASを使って、管理表を作成に挑戦しています。
①ブックの中に複数のシートがあり、特定のシートに作用させたい [onEdit(e)]
②リストのA列にチェックボックスがあり、チェックを入れるとメール通知の確認がでる [onEdit1]
③通知でOKをすると、管理者の元にメールが通知される [onEdit2]

このような動作をする管理表を作成したいと考えております。

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

実行を押しても、エラーが出てこない為、何が問題なのかわかりません。 初心者がGASを検索して目的に合っていそうなソースを見つけては色々組み込んでた。 という状態です。

該当のソースコード

function onEdit(e) { var edit_sheet_name = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getSheetName(); Logger.log(edit_sheet_name); switch(edit_sheet_name){ case 'テスト': onEdit1(); break; } } function onEdit1() { var ss = SpreadsheetApp.getActive().getSheetByName("テスト"); var rng = ss.getActiveRange(); var flag = rng.getValue(); if(rng.getColumn() == 1 && flag == true){ var popUp = Browser.msgBox("メール送信しますか?",Browser.Buttons.OK_CANCEL); if(popUp == 'OK'){ onEdit2(); } } } function onEdit2() { MailApp.sendEmail("test_mail@gmail.com","件名テスト","本文テスト"); }

試したこと

各関数をそれぞれ実行してみた所、[onEdit1]がずっと実行状態が続く状態になっており、
[onEdit2]だけを実行してみた所、メールは届きました。
onEdit1 が不完全でonEdit2との連携を果たせてないのでは・・と感じるのですが、
答えを見いだせず、こちらにご質問させて頂いた次第です。

ご多忙のところ大変恐縮ではございますが
お知恵を拝借頂けますと幸いです。
何卒宜しくお願い申し上げます。

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

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

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/08/13 06:32 編集

「記載のコードで、onEdit(e)を「実行」ボタンを押して実行した場合、実行中状態で進まない」ということだと思いますが その状態で元のスプレッドシートを表示させたとき、メッセージウィンドウが出ていませんか?
WAKBAdeGAnS

2021/08/13 06:40 編集

早速にレスポンスありがとうございます。 はい、確かにシートに戻った時、メッセージウィンドウが出ておりました。 つまり、シート上では実行されていた。という事ですかね??? 3つの関数はそれぞれ動いていますが、連動ができていない。という事でしょうか。 可能でしたら、この目的を達成する方法をご助言頂けますと幸いです。
退会済みユーザー

退会済みユーザー

2021/08/13 06:57 編集

仮に、シートに戻った時、メッセージウィンドウが出ている状態で、メッセージウィンドウの「OK」ボタンを押したときに正常にメールが届くならば、 実行ボタンを押さなくても、 スプレッドシートの「テスト」シートのA列にあるチェックボックスにチェックを入れれば、 同様にメッセージウィンドウが出て、OKをおせばメールが届くと思うのですが。
WAKBAdeGAnS

2021/08/13 06:53

qnoir様 ご返信ありがとうございます。 シートに戻った時、表示されているウィンドウのOKボタンを押しますと、 ウィンドウは消えるのですが、暫く待ってもメールが届かない。。という状態でございます。
guest

回答1

0

ベストアンサー

メッセージウィンドウのOKを押した場合の戻り値は半角小文字の「ok」なので
下記のように修正してみてはいかがでしょうか。

略 if(popUp == 'ok'){ 略

投稿2021/08/13 07:03

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

WAKBAdeGAnS

2021/08/13 07:08

ありがとうございます。 戻り値が小文字になる、こちら存じ上げておりませんでした。 目的に即した動作ができました、ご指摘ありがとうございます。 今日をキッカケに、GASの勉強を深めて参りたいと思います。 また躓きがあった時にご助言頂けましたら幸いです。 重ねてお礼申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問