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

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

ただいまの
回答率

87.61%

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

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 2,251

score 10

前提・実現したいこと

イベント会社です。
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/ツールのバージョンなど)

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • KenjiAsai

    2019/01/15 10:30

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

    キャンセル

  • papinianus

    2019/01/15 10:46

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

    キャンセル

  • KenjiAsai

    2019/01/15 10:47

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

    ありがとうございました。

    キャンセル

回答 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);
}  

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 87.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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