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

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

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

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

Q&A

1回答

3425閲覧

Googleフォームを任意のスプレッドシートへ表示させるスプリクト

KenjiAsai

総合スコア10

Google Apps Script

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

0グッド

2クリップ

投稿2019/01/11 09:17

編集2019/01/15 01:34

前提・実現したいこと

イベント会社です。
Googleフォームとスプレッドシートを利用して現場の引継ぎをスマホで共有するために作成しております。
始めはフォームの回答をそのまま見ていたのですが、文字数が多く、毎回PCで表示を改めないとうまく表示されません。
その為、フォームの送信をトリガーとして固定のスプレッドシートへ表示させるスプリクトを作成しているのですが、
フォームを送っても表示されません。

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

エラーメッセージ

オーナー 前回の実行 導入 イベント 関数  エラー率
自分 2019/01/11 17:51:38 Head スプレッドシートから - フォーム送信時 form
100%
起動 関数 エラー メッセージ トリガー End
19/01/11 17:51 form 無効な値(行 12、ファイル「コード」) formSubmit 19/01/11 17:51

該当のソースコード

function form(e) {
var timeStamp = e.namedValues["タイムスタンプ"];
var day = e.namedValues["実施日"];
var name = e.namedValues["お名前"];
var place = e.namedValues["実施場所"];
var impression = e.namedValues["所感"];
var improvement = e.namedValues["改善提案"];
var takeover = e.namedValues["引き継ぎ"];

var ss_id = '[スプレッドシートID]'; //スプレッドシートのIDを指定
var sh_name = 'スプレッドシート名';//スプレッドシートのシート名を指定
var sh = SpreadsheetApp.openById(ss_id).getSheetByName(sh_name);
var last_row = sh.getLastRow();

sh.getRange(last_row + 1, 1).setValue(timeStamp);
sh.getRange(last_row + 1, 2).setValue(day);
sh.getRange(last_row + 1, 3).setValue(name);
sh.getRange(last_row + 1, 4).setValue(place);
sh.getRange(last_row + 1, 5).setValue(impression);
sh.getRange(last_row + 1, 6).setValue(improvement);
sh.getRange(last_row + 1, 7).setValue(takeover);
}

試したこと

スプレッドシートIDを記載しなおし、送信
スプレッドシート名を記入しなおし送信
文字が認識できないエラーを確認するために半角全角を確認。

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/01/11 09:42 編集

このスクリプトを書いたアカウントのメールアドレスに、エラーを通知する設定が、トリガーで行えるはずです。通常翌日にメール通知されるはずですが、何と書いてありますか?あるいは直ちに通知する設定も可能です。そうすれば送信後すぐエラーを知ることができます。 あわせてスクリプトのファイルメニューから、プロジェクトのプロパティ→スコープに書いてある情報を追記してください。
KenjiAsai

2019/01/11 10:05

コメントありがとうございます。 エラー通知についてはトリガーを確認してみます。 スコープは以下内容でした。 プロジェクトのプロパティ このスクリプトで必要な OAuth スコープ: https://www.googleapis.com/auth/spreadsheets
papinianus

2019/01/11 11:25

スプレッドシートidって実際には[]で囲まれて無いですよね?
KenjiAsai

2019/01/12 00:40

ご返信ありがとうございます。 実際のidもかこっていました。 エラーの送信をすぐにへ変更したのですが、エラー内容は届きませんでした。 そちらの設定も確認します。
papinianus

2019/01/12 00:52

[]なしにしてください。英数字だけがidなので。
KenjiAsai

2019/01/15 01:30

papinianus様 ありがとうございます。 エラー通知の内容も確認したところ 起動 関数 エラー メッセージ トリガー End 19/01/11 17:51 form 無効な値(行 12、ファイル「コード」) formSubmit 19/01/11 17:51 となっているので、こちらが問題かと思い、こちらも[]無しに変更して試してみました。 ただこちらでもトリガーが実行されません。
papinianus

2019/01/15 01:46

間違いなく一歩近付いているとは思いますが、他のエラーがあるのだと思います。 もしくは[]をはずしても、同じエラーならidが間違っているのだと思います(/editとかは除外してください)。 引き続きエラーメッセージをみつつ検証するほかないです。
KenjiAsai

2019/01/15 01:47

どうやらトリガーの設定ミスの様でした。 papinianus様が教えていただいた[]が問題の様でした。 ありがとうございました。
guest

回答1

0

function form(e) {
var timeStamp = e.namedValues["タイムスタンプ"];
var day = e.namedValues["実施日"];
var name = e.namedValues["お名前"];
var place = e.namedValues["実施場所"];
var impression = e.namedValues["所感"];
var improvement = e.namedValues["改善提案"];
var takeover = e.namedValues["引き継ぎ"];

var ss_id = 'スプレッドシートID'; //スプレッドシートのIDを指定
var sh_name = 'スプレッドシート名'; //スプレッドシートのシート名を指定
var sh = SpreadsheetApp.openById(ss_id).getSheetByName(sh_name);
var last_row = sh.getLastRow();

sh.getRange(last_row + 1, 1).setValue(timeStamp);
sh.getRange(last_row + 1, 2).setValue(day);
sh.getRange(last_row + 1, 3).setValue(name);
sh.getRange(last_row + 1, 4).setValue(place);
sh.getRange(last_row + 1, 5).setValue(impression);
sh.getRange(last_row + 1, 6).setValue(improvement);
sh.getRange(last_row + 1, 7).setValue(takeover);
}

投稿2019/01/15 01:46

KenjiAsai

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問