Quantcast
Channel: いつも隣にITのお仕事
Viewing all articles
Browse latest Browse all 2081

GASでGoogleフォームに記述式の質問を追加する方法

$
0
0
pen

photo credit: -svetlanaya- Macro Mondays – Fingertip(s) via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASでGoogleフォームを作成する方法についてお伝えしています。

前回の記事はコチラ。

GASで作成したGoogleフォームを指定のフォルダに移動する方法
GASでGoogleフォームを一発で作成するツールの作成する方法をお伝えしています。今回は、GASで作成したGoogleフォームを指定のフォルダに移動する方法、スクリプトストアやDriveサービスを使います。

作成したフォームを指定のフォルダに保存する方法をお伝えしました。

今回は、いよいよ質問の追加をしていきます。まずは、簡単なところからテキスト、つまり記述式の質問からです。

では、GASでGoogleフォームに記述式の質問を追加する方法です。

行ってみましょう!

前回のおさらい

前回までで作成したスクリプトはコチラです。

function createEventForm(){
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  var values = spreadsheet.getSheetByName('イベント概要').getDataRange().getValues();
  var formTitle = values[0][1]; //タイトル
  var formDescription = values[1][1]; //概要
  
  var form = FormApp.create(formTitle);
  
  var FOLDER_ID = PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
  var formFile = DriveApp.getFileById(form.getId());
  DriveApp.getFolderById(FOLDER_ID).addFile(formFile);
  DriveApp.getRootFolder().removeFile(formFile);
  
  form.setDescription(formDescription);
}

実行すると、スプレッドシートの情報をもとに作成したフォームが、スクリプトプロパティのFOLDER_IDにIDを指定したフォルダに作成されます。

ただ、このフォーム。

タイトルと概要だけで、質問が何も追加されていません。

今回はまず、テキスト形式、つまり記述式の質問として「氏名」と「会社名」を追加していきます。

フォームに記述式の質問を追加する

フォームに記述式の質問を追加するには、FormオブジェクトにaddTextItemメソッドを使います。

書式はコチラです。

Formオブジェクト.addTextItem()

addTextItemメソッドの戻り値は、TextItemオブジェクトという記述式の質問を表すオブジェクトになります。

ただ、これだけでは空っぽのテキスト入力欄が追加されるだけです。

setTitleメソッドで質問のタイトルを設定する

ですから、質問のタイトルはそれとは別に設定してあげる必要があります。

そのために、addTextItemメソッドの戻り値である、TextItemオブジェクトに対してsetTitleメソッドを使ってあげます。

TextItemオブジェクト.setItem(質問のタイトル)

setRequiredメソッドで質問の回答を必須にする

「氏名」といった項目は、フォームの入力項目としては「必須」ですよね。

Googleフォームでは入力必須の設定をすることができます。

つまり、必須に設定した質問に回答をしないと「送信」ができないように設定できるのです。

GASでも、質問が必須かどうかを設定することができます。

記述式の質問について必須にするかどうかは、TextItemオブジェクトに対してsetRequiredメソッドを使います。

TextItemオブジェクト.setRequired(必須かどうか)

必須かどうかは真偽値つまりtrueかfalseで設定をします。

記述式の質問を含むフォームを生成するスクリプト

では、前述のスクリプトに記述式の「氏名」と「会社名」を質問として追加したスクリプトを紹介します。

function createEventForm(){
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  var values = spreadsheet.getSheetByName('イベント概要').getDataRange().getValues();
  var formTitle = values[0][1]; //タイトル
  var formDescription = values[1][1]; //概要
  
  var form = FormApp.create(formTitle);
  
  var FOLDER_ID = PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
  var formFile = DriveApp.getFileById(form.getId());
  DriveApp.getFolderById(FOLDER_ID).addFile(formFile);
  DriveApp.getRootFolder().removeFile(formFile);
  
  form.setDescription(formDescription);
  form.addTextItem().setTitle('氏名').setRequired(true);
  form.addTextItem().setTitle('会社名');      
}

15,16行目が新たに追加した行になりますね。

実行をすると、以下のようなフォームを作成することができます。

記述式の質問を追加したフォームを作成した

「氏名」にはアスタリスクマークがついていて必須であることはわかりますね。

まとめ

以上、GASで記述式の質問を追加したGoogleフォームの作り方についてお伝えしました。

記述式つまりテキスト形式の質問の作り方は、他の質問であったとしても一緒なので、必要に応じて使ってくださいね。

さて、次回はメールアドレスの入力欄を作っていきます。

どうぞお楽しみに!

連載目次:GASでGoogleフォームを一発で作成するツールを作る

イベントの申し込みやアンケートにとっても便利なGoogleフォーム。スプレッドシートの入力内容をもとに、一発でフォームを作成するツールを作っていきます。
  1. GASでGoogleフォームを作成する最も簡単なスクリプト
  2. GASで作成したGoogleフォームを指定のフォルダに移動する方法
  3. GASでGoogleフォームに記述式の質問を追加する方法

Viewing all articles
Browse latest Browse all 2081

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>