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

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

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

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

JavaScript

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

Q&A

解決済

GASでの「'namedValues' of undefined」というエラーについて教えてください。

wooo
wooo

総合スコア1

Google Apps Script

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

JavaScript

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

4回答

0グッド

1クリップ

1643閲覧

投稿2022/10/12 09:16

前提

使い始めでわからないことが多く、かなり初歩的な質問となること、ご容赦ください。

GASを用いてGoogleフォームの回答を
チャットワークに連携しようとしているところ
ネットで引っ張ってきたコードをそのまま使っていますが
以下のエラーメッセージが発生しました。

この場合、どの部分を直したらうまく動くのかが知りたいです。

TypeError: Cannot read property 'namedValues' of undefined
sendReport @ コード.gs:9

実現したいこと

・Googleフォームの回答をチャットワークへ送信したい

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

TypeError: Cannot read property 'namedValues' of undefined sendReport @ コード.gs:9

該当のソースコード

function sendReport(e) { // 【編集対象】Googleフォームの項目に合わせる var date = e.namedValues['タイムスタンプ']; var company = e.namedValues['法人名']; var department = e.namedValues['所属']; var name = e.namedValues['お名前']; // 【編集対象】Googleフォームの項目に合わせる var message = ''; message += "[info][title]ヒヤリングフォームに回答がありました[/title]"; message += "タイムスタンプ: " + date + "\n"; message += "法人名: " + company + "\n"; message += "所属: " + department + "\n"; message += "お名前: " + name + "\n"; message += "[/info]"; // Chatworkへ送信 var client = ChatWorkClient.factory({token: token}) client.sendMessage({room_id: room_id ,body: message}); }

試したこと

ネットの情報をもとに、「e」が機能していないということが分かりましたが
どのように解決すればよいのか全く分かりません。

eを消したり、違う関数も試しましたが、うまく機能してくれません。

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

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

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答4

0

皆さんご回答有難うございます。

皆さんの仰る通り、『フォームを動かしていなかったためにエラー』が出ておりました。
フォームを送信したところ正常に動いてくれました。

すぐにご回答いただいた方、本当に有難うございました。

投稿2022/10/12 23:38

wooo

総合スコア1

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

ベストアンサー

フォーム送信→スプレッドシートに内容を出力→スプレッドシートの内容をChatWorkに送信 という流れのコードになります。

考えられる原因①

フォームの設定で、回答をスプレッドシートシートに記録するようにしていますか?

考えられる原因②

フォームが送信され、スプレッドシートに内容が記録されたときに正常に動くコードです。
エディタの画面で実行しても、フォームの内容が送信されたわけではないので何も内容がなくエラーになります。
エディタで実行ではなく、フォームを送信してテストしていますか?

投稿2022/10/12 10:35

Cocode

総合スコア2314

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

wooo

2022/10/12 23:41

とても分かりやすい説明、有難うございます。 仰るようにフォームを送信したところ、正常に動いてくれました。 大変助かりました。有難うございました。

0

console.logでeの中身を確認してみるのはどうでしょうか?

gs

1function sendReport(e) { 2 // 変数eの内容をログに出力 3 console.log(e) 4 // もしくはこっち 5 console.log(e.namedValues) 6~~ 省略 ~~ 7}

過去にも似たような質問がありました。
こちらも確認してみてください。

https://teratail.com/questions/312506

投稿2022/10/12 09:28

編集2022/10/12 09:30
k.a_teratail

総合スコア835

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

wooo

2022/10/12 23:39

似たような質問等ご協力いただき有難うございます。 無事に解決することができました。

0

TypeError: Cannot read property 'namedValues' of undefined

'namedValues' というプロパティが存在しない、とおっしゃってます。
eにはなにが入ってるんでしょうか

投稿2022/10/12 09:22

y_waiwai

総合スコア86770

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

wooo

2022/10/12 23:39

解決出来ました。 すぐにご回答いただき、有難うございます。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.83%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Google Apps Script

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

JavaScript

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