質問: ### 前提・実現したいこと Googleフォームの送信をトリガーとして、フォーム情報が蓄積されるスプレッドシート上にメッセージボックスを表示したいです。 実現方法があればご教示頂きたいと思います。 また、実現ができないのであればその根拠となるドキュメントを教えて頂けると助かります。 どうぞよろしくお願いいたします。 該当のソースコード --------- ``` function onFormSubmit() { Browser.msgBox("Success"); } ``` ``` function onFormSubmit() { SpreadsheetApp.getUi().alert("Success"); } ``` ### 試したこと 上記2パターンにてソースコードを記述したのち、イベントトリガーを「スプレッドシートから→フォーム送信時」に設定してフォーム送信で試したのですが、表示はされませんでした。 また、フォーム送信ではなく、イベントトリガとして時限式なども試したのですが、メッセージは表示されませんでした。
回答: 「ないことの証明」は非常に難しいですが、Googleフォームの送信後の画面遷移を指定できなければスプレッドシートを開くことも出来ません。スプレッドシートでのイベントはデータにアクセスするためのイベントであって、そのタイミングで画面を取得できるというわけではないと思います。 フォームの送信後に表示を変えるには、Google Apps Script の HTML Service を使えば一応出来ます。フォームを Google Apps Script で作ってしまう方法です。 HTML / CSS でフォームを作り、JavaScript で画面を書き換えたりsubmitを受け取り GAS の関数を実行し、その結果をまたUIの JavaScript に渡して描画を変える、といった感じです。情報が古かったりそもそも情報が少なかったりしますが、何とかなると思います。下記のURLは参考になるかはわかりませんが、「どういうことが出来るのか」の一端がわかると思います。 【HTML Service: Best Practices | Apps Script | Google Developers】 【Google Apps Scriptで今どきっぽい社内向けウェブアプリを作る - Qiita】 【Google Apps ScriptのHTML Serviceで擬似的に画面遷移 | eye4brain】 http://eye4brain.sakura.ne.jp/wp/blog/2015/03/03/google-apps-scriptのhtml-serviceで擬似的に画面遷移/ 【[GAS] Google Apps Script のHtmlServiceまとめ - dackdive's blog】