質問: スプレットシートのForm送信時に2回処理が実行されてしまいます。 Googleアカウント種別:G Suite Basic Googleフォームからの回答を受け取りスプレットシートで処理をしたいと考え、 スプレットシートのスクリプトエディタを以下のように設定しました。 ``` function onFormSub(e){ Logger.log(event.values); } ``` また、このスプレットシートにトリガーとして ``` 実行する関数を選択:onFormSub デプロイ時に実行:Head イベントのソースを選択:スプレッドシートから イベントの種類を選択:フォーム送信時 ``` と設定しました。 この状態からスプレットシートに紐づいたフォームを送信したところ、 Logger では選択したはずの項目も空白になっており、 Developer Hubで実行数を確認してみると、 ほぼ同時刻(0.5秒差ほど)で2回onFormsubが実行されてしまっています。 自分で解決方法を調べ、下記の方法を試してみたのですが、治りませんでした。 ・フォームを削除し、作成しなおす ・トリガを削除し、設定しなおす ・スプレットシートからすべて作り直す また、半年前に作成した同様のトリガもなぜか2回実行されております。 formの方にスクリプトを作成し、送信時のトリガをすることも考えたのですが どうしてもItem取得等に時間がかかるため、できればスプレットシート側で実行したいのです ご助言よろしくお願いいたします。
回答: ### Loggerに関して GASでログ出力する2つの方法(Logger.logとconsole.log)の紹介と使い分け トリガーでやる場合、Loggerは使えないようです。 console.logを使ってみてください。 ### 二回起動に関して Google Apps Script で二重起動を防止する 原因は解りませんが、結構こういう問題はあるっぽいです。 (自分でもテストしてみたら多重起動してました。) LockServiceを利用してみるのも一つの手かもしれません。