質問: item.getResponse(); msg += q + ': ' + a + '\n\n'; } GmailApp.sendEmail('samplem@test.com', '「フォーム」にて回答が提出されました。', msg); } ``` ここに言語名を入力 ソースコード ``` ### 試したこと 過去の回答から、以下を試しましたがうまくいかず、基本的なことかもしれませんが、解決方法があれば教えていただけますと幸いです。 「// FormApp.getActiveForm()」を入れてみる。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: > > TypeError: Cannot read property 'response' of undefined > > > このエラーは `undefined` のプロパティ 'response' が読み取れない、と言っています。 従って、response がとれないのではなく、e が取れていないのです。 トリガーではなく関数の実行を行ったのだと推測できます。 > > Googleフォーム上で開いたスクリプトエディタで書いているので、つながっている > > > 繋がっているのはフォームであって、回答ではないです。 テストで実行するときに 0 個以上の回答を保持しているフォームのどの回答を使うか、コード上で指示していないので、エラーになるのは当然だと思います。 テスト実行したいなら ``` var items = e.response.getItemResponses(); ``` を ``` var items = FormApp.getActiveForm().getResposes()[0]; ``` とでもすれば、最初の回答をサンプルにして「関数の実行」を試すことができます。 (もちろんこの場合でも、回答が 1 つもなければ別のエラーになってしまいますが)