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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

3282閲覧

【GAS】スプレッドシートのポップアップ表示がデバック時は上手く動作するのに本番では表示されない

yato-810

総合スコア0

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2021/09/13 08:11

前提・実現したいこと

GAS(Google Apps Script)を使って、グーグルフォームに入力された内容をスプレッドシートに記録、その内容をLINE Notifyを利用してグループラインに通知。ラインへの通知と同時に、開いているスプレッドシート画面に「新規連絡があります」とポップアップを表示させたい。

※スプレッドシートはスタートアップでPC起動時に立ち上がっています。
トリガーは「フォーム入力時」

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

GASスクリプト画面の「デバック」や「実行」を行った際には問題なく実行・完了されるのですが、いざグーグルフォームに新規内容を送信されるとLINEへの通知まででスプレッドシートへのポップアップだけが表示されません。
(実行ログでは最後まで「実行完了」となっています)

該当のソースコード

GAS

1ソースコード 2//spreadsheetからデータを取得 3function GoogleFormToLine(){ 4 var sheet = SpreadsheetApp.getActiveSheet(); //sheetの指定 5 var row = sheet.getLastRow(); //行数 6 var column = sheet.getLastColumn(); //列数 7 var range = sheet.getDataRange(); //sheetから範囲指定するための準備 8 var message = ""; 9 10 for(var i=1;i<=column;i++){ 11 var item = range.getCell(1, i).getValue(); //1行目 12 var value = range.getCell(row, i).getValue(); //最終行 13 if(item == "タイムスタンプ"){ 14   value = Utilities.formatDate(value,"JST","yy/MM/dd(E) HH:mm:ss"); 15 } 16 message += "\n■"+item+"\n"+value; 17 } 18 SendToLine(message); 19 20var ui = SpreadsheetApp.getUi(); 21 var title = 'Hello, dialog'; 22 var prompt = 'ダイアログを確認したらボタンを押してください' 23 ui.alert(title, prompt, ui.ButtonSet.YES_NO); 24 25Browser.msgBox("テスト"); 26} 27 28 29//LINEに通知 30function SendToLine(message){ 31 //ファイル→プロジェクトのプロパティ→スプリクトのプロパティからLINE_TOKENを設定しておく 32 var token = PropertiesService.getScriptProperties().getProperty('LINE_TOKEN'); 33 var op = 34 { 35 "method" : "post", 36 "Content-Type" : "application/x-www-form-urlencoded", 37 "payload": "message=" + message, 38 "headers":{"Authorization" : "Bearer " + token} 39 }; 40 var res = UrlFetchApp.fetch("https://notify-api.line.me/api/notify",op); 41 Logger.log(JSON.parse(res.getContentText())); //Response 42 43Browser.msgBox("テスト"); 44 45 //メッセージボックスを出す 46var result = Browser.msgBox("新規連絡があります", Browser.Buttons.OK_CANCEL); 47 if (result == "cancel"){ 48 49 50 } 51} 52

試したこと

GASを学び始めて数週間のため色々な要素を無理やりつなぎ合わせて作っております。ポップアップ部分のコードに問題があるかと思いいくつかの種類のポップアップをコード内に記述してみましたがデバック時は問題ないが、本番では表示されないことに変わりはありませんでした。
最終的に表示させたいポップアップはコード最下部にある「新規連絡があります」のみです。

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

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

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

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

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

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

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

guest

回答1

0

フォーム入力時などのトリガーで実行された場合には、ポップアップは表示されません。

投稿2021/09/13 23:34

macaron_xxx

総合スコア3191

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

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

yato-810

2021/09/14 11:34 編集

回答ありがとうございます。仕様ということなんですね・・・ フォームにて新規回答が発生した際、スプレッドシートに情報が追加されたことがデスクトップ上で分かるようにするためには何か良い方法は存在するでしょうか? 方向性だけでも教えていただけると幸いです。 (GAS、Power Automate、Power Automateデスクトップは使える環境です)
macaron_xxx

2021/09/18 21:06

メールなどで通知すればよいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問