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

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

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

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

Google Apps Script

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

Q&A

解決済

1回答

3537閲覧

formの回答をスプレッドシートに書き出す設定にする方法を教えて下さい

aiueomaruta

総合スコア27

Google スプレッドシート

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

Google Apps Script

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

0グッド

0クリップ

投稿2020/10/24 03:41

編集2020/10/25 00:23

前提・実現したいこと

GAS(Google Apps Script)でformを作って送り、1時間ほど待って未回答者にメールを送るプログラムを作っています。
■formを作って回答を指定したスプレッドシートに書き出すプログラムを作っているのですが他のサイトを見てもform作りは手動でやるようなことが書いてあります。

formを自動で作るところまではできますが自動でスプレッドシートに回答を書き出すように設定するにはどうすればいいでしょうか?
↓コード

GAS

1function first() { 2 const d = new Date; 3 const month = d.getMonth()+1; 4 var date = d.getDate(); 5 if(date < 10){ 6 var date = "0"+date; 7 } 8 const day = ["日","月","火","水","木","金","土"][d.getDay()]; 9 const form = FormApp.create("【"+month+"/"+date+"("+day+")】健康観察"); 10 form.setDescription('・送信されたメールアドレスから生徒のみなさんの名前を判別することができます\n・必ず@kaichigakuen.ed.jpのアカウントで送信してください。\n・検温は「毎日の習慣」として行ってください(「登校日でない日」も検温し、送信してください)。\n・登校日に学校を欠席する場合は「メールでの欠席連絡」をお願いします。'); 11 form.addListItem().setTitle('①本日は登校しますか。').setChoiceValues(['登校します','登校しません']).setRequired(true); 12 form.addListItem().setTitle('②今朝の体温を選択してください。').setChoiceValues(['35.9℃以下','36.0℃〜36.4℃','36.5℃〜36.9℃','37.0℃〜37.4℃','37.5℃以上']).setRequired(true); 13 form.addCheckboxItem().setTitle('③あてはまる健康状態をチェックしてください。(複数回答可)').setChoiceValues(['元気です','発熱している(37.5℃以上)','頭痛がある','咳がでる','のどに痛みがある。','息苦しさがある','倦怠感(全身のだるさ)がある','下痢や腹痛がある','吐き気や嘔吐がある','味や臭いがわかりづらい']).showOtherOption(true).setRequired(true); 14 form.addMultipleChoiceItem().setTitle('④同居するご家族の健康状態を教えてください。').setHelpText('風邪等の症状がある場合は登校をお控えください。').setChoiceValues(['健康です','発熱など風邪等の症状の人がいます']).setRequired(true); 15 form.addTextItem().setTitle('⑤その他、何か特記事項があれば入力してください。').setRequired(false); 16 const date2 = d.getDate(); 17 const formURL = form.getPublishedUrl(); 18 var html = HtmlService.createTemplateFromFile("index"); 19 html.call = [month,date2,day,formURL]; 20 var Out_Html = html.evaluate().getContent(); 21 GmailApp.sendEmail('(メールアドレス)',month+'/'+date2+' 健康調査フォーム','エラー',{htmlBody: Out_Html} 22 )};

Html

1 2<!DOCTYPE html> 3<html> 4 <head> 5 <base target="_top"> 6 </head> 7 <body> 8 <?=call[0]?>/<?=call[1]?>(<?=call[2]?>) 9 <p></p> 10 本日(<?=call[0]?>/<?=call[1]?>)の健康調査フォームです。<br> 11 <p></p> 12 <b>本日登校するしないに関わらず全員</b><br> 13 <b>午前8:00までに必ず回答</b>してください。<br> 14 <a href="<?=call[3]?>"><?=call[0]?>/<?=call[1]?>(<?=call[2]?>) 健康調査フォーム</a> 15 </body> 16</html>

ちなみに利用環境はiPadのSafariです。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/10/24 11:07

ちょっと質問の内容が分かりません。 やりたいこととやったことをもう少し丁寧に説明してください。 また、コードがあれば、具体的な内容に踏み込めます。
aiueomaruta

2020/10/24 12:09

コメントありがとうございます! もう少し詳しく書きます!
macaron_xxx

2020/10/25 23:08

ざっと調べてみましたが、SheetとFormの紐付けはスクリプトでは無理そうですね。
aiueomaruta

2020/10/25 23:09

そうなんですか。分かりました
guest

回答1

0

ベストアンサー

Form.setDestination()を呼ぶことで、回答の出力先を指定できます。

Class Form / setDestination(type, id)
https://developers.google.com/apps-script/reference/forms/form#setdestinationtype,-id

JavaScript

1function CreateForm() { 2 const date = Utilities.formatDate(new Date(), "JST", "MM/dd(E)"); 3 const title = `${date}】テスト`; 4 5 const spreadsheet = SpreadsheetApp.create(title); 6 7 const form = FormApp.create(title); 8 form.setDescription("フォームの説明"); 9 form 10 .addListItem() 11 .setTitle("1. 選択(必須)") 12 .setChoiceValues(["選択A", "選択B"]) 13 .setRequired(true); 14 15 form.setDestination(FormApp.DestinationType.SPREADSHEET, spreadsheet.getId()); 16}

投稿2020/10/26 08:52

draq

総合スコア2577

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

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

aiueomaruta

2020/10/26 09:02

ありがとうございます!試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問