質問: ### 前提・実現したいこと Google Apps Scriptでフォームを入力後その内容をメール送信するScriptを作っています。 ### 発生している問題・エラーメッセージ TypeError: undefined からプロパティ「namedValues」を読み取れません。(行 3、ファイル「コード」) ### 該当のソースコード function sendFormMail(e){ var address="{xxxxxx@gmail.com}"; var timeStamp=e.namedValues["タイムスタンプ"]; var hokoku=e.namedValues["報告種類"]; var kaisi=e.namedValues["開始時間"]; var owari=e.namedValues["終了時間"]; var yasumi=e.namedValues["休憩時間"]; var biko=e.namedValues["本文備考"]; var subject=hokoku+"連絡"+timeStamp+"私の名前" var body=hokoku+"報告"+" 私の名前"+"\n"; body+="開始時間"+kaisi+"\n"; body+="終了時間"+owari+"\n"; body+="休憩時間"+yasumi+"\n"; body+="備考"+biko+"\n"; MailApp.sendEmail(address,subject,body); } ### 試したこと 再度他のサイトを見て書き換えました。 ### 補足情報(FW/ツールのバージョンなど) トリガーは「現在のプロジェクトのトリガー」で「実行」に「sendFormMail」を選択、「イベント」に「スプレッドシートから」「フォーム送信時」を選択しました。
回答: > > TypeError: undefined からプロパティ「namedValues」を読み取れません。(行 3、ファイル「コード」) > > > e.namedValuesのプロパティにタイムスタンプはないです。 タイムスタンプはスプレッドシート側で受信時に自動的に記述される仕様のようです。 タイムスタンプの値は`e.values[0]`で取得できます。 > > ただ、ここは別にタイムスタンプから日付を取って来なくても良く、フォームに入力した”日”だけを”05/07"か"5/7"の形にしてあげれば良いのですが、 > > > であるならば、`Utilities.formatDate(new Date(e.values[0]), 'Asia/Tokyo', 'MM/dd')`でよろしいかと思います。 ただし、上記がご質問の意図であるならば、本件のタイトルをもっと具体的に表現すべきです。 例えば、「Googleフォーム送信後のタイムスタンプを「05/07」のように整形したい」など。