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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google サイト

Google サイトは、Google社が提供する無料のホームページ作成ツールです。プログラミングやデザインなどの知識がなくても、ブラウザから容易にWebページを作成することが可能。新たなページの追加も簡単でページ数には制限がありません。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Q&A

解決済

1回答

1857閲覧

Googleフォームの回答を更新履歴としてGoogleサイトにアップしたい

yoy_chem

総合スコア3

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google サイト

Google サイトは、Google社が提供する無料のホームページ作成ツールです。プログラミングやデザインなどの知識がなくても、ブラウザから容易にWebページを作成することが可能。新たなページの追加も簡単でページ数には制限がありません。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

0グッド

0クリップ

投稿2021/08/02 07:04

Googleサイトを編集中。フォームに入力された内容を自動更新される表にして表示したい。

Googleフォームを作成、回答を表示するスプレッドシートを開いて
ツール>スクリプトエディタ
からソースコードを入力していった。

本業ではないため、以下のサイトを参考にして見様見真似で入力していった。
https://www.acrovision.jp/service/gas/?p=472

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

Exception: Unexpected error while getting the method or property openById on object SpreadsheetApp. getData @ コード.gs:6 eval eval doGet @ コード.gs:2

該当のソースコード

gsとHTML

1◎gs 2 3function doGet() { 4 return HtmlService.createTemplateFromFile("更新履歴").evaluate(); 5} 6 7function getData() { 8 var ss = SpreadsheetApp.openById("HP更新履歴"); 9 var values = ss.getSheetByName("HP更新履歴").getDataRange().getValues(); 10 11 return values; 12} 13 14 15◎HTML 16<!DOCTYPE html> 17<html> 18 <head> 19 <base target="_top"> 20 <style> 21 table,td,th{border:1px solid black;} 22 td{padding: 10px;} 23 </style> 24 </head> 25 <body> 26 <? 27 var data = getData(); 28 ?> 29 <table> 30 <tr> 31 <th><?=data[0][0]?></th> 32 <th><?=data[0][1]?></th> 33 <th><?=data[0][2]?></th> 34 </tr> 35 <? 36 for(var i= 1,j=data.length;i<j;i++){ 37 output._=('<tr>') 38 output._=('<td>'+Utilities.formatDate(new Date(data[i][0]),'Asia/Tokyo','yyyy/MM/dd HH:mm:ss')+'</td>'); 39 output._=('<td>'+data[i][1]+'</td>'); 40 output._=('<td>'+data[i][2]+'</td>'); 41 output._=('</tr>') 42 } 43 ?> 44 </table> 45 </body> 46</html>

試したこと

共有がされていない、アクセスできないのではないか
という質問への回答があったので権限はスプレッドシートは全員見れるようにしてあります。

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

フォーム名:HP更新履歴
スプレッドシート名:HP更新履歴
HTML名:更新履歴

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

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

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

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

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

guest

回答1

0

ベストアンサー

var ss = SpreadsheetApp.openById("HP更新履歴");

この "HP更新履歴" の部分には、スプレッドシートIDを入れましょう。

参考
https://qiita.com/n0bisuke/items/67afb8ad50d20fba0ad3

投稿2021/08/02 13:12

sawa

総合スコア3002

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

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

yoy_chem

2021/08/06 01:37

ありがとうございます。 変更はしたのですが、エラーが出てしまいました。 少し調べてみて、openByUrlにすると次のようなエラーになりました。 どうすればよいでしょうか? TypeError: Cannot read property 'getDataRange' of null getData @ コード.gs:7 eval eval doGet @ コード.gs:2
sawa

2021/08/06 02:06

Cannot read property 'getDataRange' of null というエラーなので、 getDataRange の手前の ss.getSheetByName("HP更新履歴")が null ってことですね。 シート名が違うってパターンでは?
yoy_chem

2021/08/09 23:53

ありがとうございます。 シート名が違いました。変更したらうまくいきました。 その後なのですが、Googleフォームのタイムスタンプが時刻まで表示になっているので 年/月/日の表示に変更しようと考えています。 新しくシートを作成し、「=ARRAYFORMULA(TO_DATE(フォーム回答データのセル))」で スプレッドシートのセル表示はできました。 その後、日付表示を変更したシートにすべてのデータをコピーするように「=回答データのセル」として 整えました。 その後、GASのシート名、URLを変更して、 htmlもyyyy/MM/ddに変更しましたが SyntaxError: Unexpected number doGet @ コード.gs:2 のエラーが表示されました。 これはどうすればいいでしょうか? 宜しくお願いいたします。
sawa

2021/08/10 02:26 編集

当初の質問とは違うエラーになるので、一旦こちらの質問をクローズして、修正後の現在のコードを提示して別質問を立ち上げることをお勧めします。 あと最初にお伝えすべきでしたが、GASの質問なので Google Apps Script のタグを付けた方がよいです。
yoy_chem

2021/08/10 05:12

承知いたしました。 ご回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問