みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
GASでGoogleフォームを作成する方法についてお伝えしています。
前回の記事はコチラ。
作成したフォームを指定のフォルダに保存する方法をお伝えしました。
今回は、いよいよ質問の追加をしていきます。まずは、簡単なところからテキスト、つまり記述式の質問からです。
では、GASでGoogleフォームに記述式の質問を追加する方法です。
行ってみましょう!
前回のおさらい
前回までで作成したスクリプトはコチラです。
function createEventForm(){ const ss = SpreadsheetApp.getActiveSpreadsheet() const values = ss.getSheetByName('イベント概要').getDataRange().getValues(); const formTitle = values[0][1]; //タイトル const formDescription = values[1][1]; //概要 const form = FormApp.create(formTitle); const id = PropertiesService.getScriptProperties().getProperty('FOLDER_ID'); const formFile = DriveApp.getFileById(form.getId()); DriveApp.getFolderById(id).addFile(formFile); DriveApp.getRootFolder().removeFile(formFile); form.setDescription(formDescription); }
実行すると、スプレッドシートの情報をもとに作成したフォームが、スクリプトプロパティのFOLDER_IDに設定したフォルダIDのフォルダに作成されます。
ただ、このフォーム。
タイトルと概要だけで、質問が何も追加されていません。
今回はまず、テキスト形式、つまり記述式の質問として「氏名」と「会社名」を追加していきます。
フォームに記述式の質問を追加する
フォームに記述式の質問を追加するには、FormオブジェクトにaddTextItemメソッドを使います。
書式はコチラです。
addTextItemメソッドの戻り値は、TextItemオブジェクトという記述式の質問を表すオブジェクトになります。
ただ、これだけでは空っぽのテキスト入力欄が追加されるだけです。
setTitleメソッドで質問のタイトルを設定する
ですから、質問のタイトルはそれとは別に設定してあげる必要があります。
そのために、addTextItemメソッドの戻り値である、TextItemオブジェクトに対してsetTitleメソッドを使ってあげます。
setRequiredメソッドで質問の回答を必須にする
「氏名」といった項目は、フォームの入力項目としては「必須」ですよね。
Googleフォームでは入力必須の設定をすることができます。
つまり、必須に設定した質問に回答をしないと「送信」ができないように設定できるのです。
GASでも、質問が必須かどうかを設定することができます。
記述式の質問について必須にするかどうかは、TextItemオブジェクトに対してsetRequiredメソッドを使います。
必須かどうかをブール値つまりtrueかfalseで設定をします。
記述式の質問を含むフォームを生成するスクリプト
では、前述のスクリプトに記述式の「氏名」と「会社名」を質問として追加したスクリプトを紹介します。
function createEventForm(){ const ss = SpreadsheetApp.getActiveSpreadsheet() const values = ss.getSheetByName('イベント概要').getDataRange().getValues(); const formTitle = values[0][1]; //タイトル const formDescription = values[1][1]; //概要 const form = FormApp.create(formTitle); const id = PropertiesService.getScriptProperties().getProperty('FOLDER_ID'); const formFile = DriveApp.getFileById(form.getId()); DriveApp.getFolderById(id).addFile(formFile); DriveApp.getRootFolder().removeFile(formFile); form.setDescription(formDescription); form.addTextItem().setTitle('氏名').setRequired(true); form.addTextItem().setTitle('会社名'); }
16,17行目が新たに追加した行になりますね。
実行をすると、以下のようなフォームを作成することができます。
「氏名」にはアスタリスクマークがついていて必須であることはわかりますね。
まとめ
以上、GASで記述式の質問を追加したGoogleフォームの作り方についてお伝えしました。
記述式つまりテキスト形式の質問の作り方は、他の質問であったとしても一緒なので、必要に応じて使ってくださいね。
さて、次回はメールアドレスの入力欄を作っていきます。
どうぞお楽しみに!
連載目次:GASでGoogleフォームを一発で作成するツールを作る
イベントの申し込みやアンケートにとっても便利なGoogleフォーム。スプレッドシートの入力内容をもとに、一発でフォームを作成するツールを作っていきます。- GASでGoogleフォームを作成する最も簡単なスクリプト
- GASで作成したGoogleフォームを指定のフォルダに移動する方法
- GASでGoogleフォームに記述式の質問を追加する方法
- GASでGoogleフォームにメールアドレスの入力欄とバリデーションを追加する方法
- GASでGoogleフォームにラジオボタンの質問を追加する方法
- GASでGoogleフォームにチェックボックス形式の質問を追加する方法
- GASでGoogleフォームにプルダウンリストの質問を追加する方法
- Googleフォームの質問の選択肢をスプレッドシートのデータから生成するGAS関数の作り方
- GASでGoogleフォームに追加できる質問の種類とそのメソッドまとめ