Googleフォームで使えるGASの関数

GAS(Google Apps Script)はさまざまなGoogleサービスと連携でき、多くの作業を自動化できます。しかし実際に実装しようと思うと、どのような「クラス(class)」や「関数(function)」、「メソッド(method)」が用意されているのか分からず、苦戦している人も多いのではないでしょうか?

そこで今回は「Googleフォームで使えるGASの関数」というテーマで解説します。

目次

FormAppクラス

createメソッド

createメソッドを使用すると、新しいGoogleフォームを生成することができます。この機能は、アンケートやフィードバックフォームなど、さまざまな用途のフォームをプログラム的に作成したい場合に非常に便利です。以下のコードスニペットは、特定のタイトルを持つ新しいフォームを作成し、その公開URLをログに記録します。これにより、フォームの作成と共有が簡単になります。

function createForm() {
  var form = FormApp.create('フィードバックフォーム');
  Logger.log('フォームのURL: ' + form.getPublishedUrl());
}

createTextValidationメソッド

createTextValidationメソッドは、テキスト入力に対するバリデーションルールを作成するために使用します。例えば、ユーザーがフォームにメールアドレスを入力する必要がある場合、このメソッドを使用して、入力されたテキストがメールアドレスの形式に適合しているかどうかを検証できます。以下の例では、フォームにテキスト入力項目を追加し、その入力がメールアドレスであることを要求するバリデーションを設定しています。

function createTextValidation() {
  var form = FormApp.getActiveForm();
  var item = form.addTextItem().setTitle('メールアドレス');
  var textValidation = FormApp.createTextValidation()
    .requireTextIsEmail()
    .build();
  item.setValidation(textValidation);
}

Formクラス

addCheckboxItemメソッド

addCheckboxItemメソッドを使用すると、フォームにチェックボックスの質問を追加できます。この方法は、複数のオプションから複数の選択肢を選ばせたい場合に特に有効です。以下のコード例では、「好きなフルーツ」を選択する質問を作成し、りんご、バナナ、ぶどうの3つの選択肢を提供しています。ユーザーはこれらの選択肢から複数選択することができます。

function addCheckboxItem() {
  var form = FormApp.getActiveForm();
  var item = form.addCheckboxItem();
  item.setTitle('好きなフルーツを選んでください。')
    .setChoices([
      item.createChoice('りんご'),
      item.createChoice('バナナ'),
      item.createChoice('ぶどう')
    ]);
}

addListItemメソッド

addListItemメソッドは、フォームにドロップダウンリスト(プルダウンメニュー)を追加する際に使用します。このタイプの質問は、ユーザーに一つの選択肢を選ばせたい場合に適しています。以下の例では、「職業」を選択するためのプルダウンメニューをフォームに追加しています。これにより、ユーザーは提供された選択肢の中から自分の職業を選択できます。

function addListItem() {
  var form = FormApp.getActiveForm();
  var item = form.addListItem();
  item.setTitle('職業を選択してください。')
    .setChoiceValues(['学生', '教師', 'エンジニア', 'その他']);
}

addMultipleChoiceItemメソッド

addMultipleChoiceItemメソッドは、フォームに複数選択肢のうち一つを選ぶ質問を追加する際に使用します。この質問タイプは、特定の質問に対してユーザーから一つの回答のみを求める場合に適しています。以下の例では、「最も好きな季節は?」という質問を追加し、四つの季節を選択肢として提供しています。

function addMultipleChoiceItem() {
  var form = FormApp.getActiveForm();
  var item = form.addMultipleChoiceItem();
  item.setTitle('最も好きな季節は?')
    .setChoices([
      item.createChoice('春'),
      item.createChoice('夏'),
      item.createChoice('秋'),
      item.createChoice('冬')
    ]);
}

addTextItemメソッド

addTextItemメソッドを使用すると、ユーザーに自由に回答してもらうためのテキストフィールドをフォームに追加できます。このタイプの質問は、特定の回答を選択するのではなく、ユーザーに詳細なフィードバックやコメントを入力してもらいたい場合に特に有用です。以下の例では、「フィードバック」に対する自由記述式の質問を追加しています。

function addTextItem() {
  var form = FormApp.getActiveForm();
  var item = form.addTextItem();
  item.setTitle('追加でフィードバックがあれば、こちらにご記入ください。');
}

getIdメソッド

フォームの一意のIDを取得するには、getIdメソッドを使用します。このIDは、フォームをプログラム的に参照する際に必要となることがあります。以下の例では、現在アクティブなフォームのIDを取得し、ログに記録しています。

function getFormId() {
  var form = FormApp.getActiveForm();
  Logger.log('フォームのID: ' + form.getId());
}

setDescriptionメソッド

setDescriptionメソッドを使用すると、フォームの説明文を設定または更新することができます。この説明文は、フォームを開いた際にユーザーに表示され、フォームの目的や指示を提供するのに役立ちます。以下の例では、フォームに「アンケートにご協力ください」という説明文を追加しています。

function setFormDescription() {
  var form = FormApp.getActiveForm();
  form.setDescription('このアンケートにご協力いただき、ありがとうございます。');
}

CheckboxItemクラス

setChoiceValuesメソッド

setChoiceValuesメソッドは、チェックボックスアイテムに対して選択可能なオプションを設定する際に使用します。このメソッドを利用することで、ユーザーが複数のオプションから選択できるようになります。以下の例では、既に作成されたチェックボックス質問に対して、複数の選択肢を設定しています。

function setCheckboxChoices() {
  var form = FormApp.getActiveForm();
  var items = form.getItems(FormApp.ItemType.CHECKBOX);
  var checkboxItem = items[0].asCheckboxItem();
  checkboxItem.setChoiceValues(['オプション1', 'オプション2', 'オプション3']);
}

setRequiredメソッド

setRequiredメソッドは、質問が回答必須かどうかを設定する際に使用します。これを用いることで、フォーム送信前にユーザーが特定の質問に回答することを強制できます。以下のコードスニペットでは、チェックボックス質問を必須に設定しています。

function setCheckboxRequired() {
  var form = FormApp.getActiveForm();
  var items = form.getItems(FormApp.ItemType.CHECKBOX);
  var checkboxItem = items[0].asCheckboxItem();
  checkboxItem.setRequired(true);
}

setTitleメソッド

setTitleメソッドを使用して、チェックボックス質問のタイトルを設定または更新します。このタイトルは、質問の内容をユーザーに伝える重要な役割を持ちます。以下の例では、チェックボックス質問に「選択してください」というタイトルを設定しています。

function setCheckboxTitle() {
  var form = FormApp.getActiveForm();
  var items = form.getItems(FormApp.ItemType.CHECKBOX);
  var checkboxItem = items[0].asCheckboxItem();
  checkboxItem.setTitle('以下から選択してください:');
}

showOtherOptionメソッド

showOtherOptionメソッドは、チェックボックス質問に「その他」のオプションを追加するために使用します。これにより、提供された選択肢に該当しない回答をユーザーが入力できるようになります。以下の例では、「その他」オプションをチェックボックス質問に追加しています。

function showCheckboxOtherOption() {
  var form = FormApp.getActiveForm();
  var items = form.getItems(FormApp.ItemType.CHECKBOX);
  var checkboxItem = items[0].asCheckboxItem();
  checkboxItem.showOtherOption(true);
}

ListItemクラス

setChoiceValuesメソッド

setChoiceValuesメソッドは、リストアイテム(プルダウンメニュー)に選択可能なオプションを設定する際に使用します。このメソッドを利用することで、フォームのユーザーがドロップダウンリストから選択できるオプションを指定できます。以下の例では、プルダウンメニューに「職業」を選択するための複数のオプションを設定しています。

function setListItemChoices() {
  var form = FormApp.getActiveForm();
  var item = form.addListItem();
  item.setTitle('あなたの職業は?');
  item.setChoiceValues(['学生', '教師', 'エンジニア', '自営業']);
}

setRequiredメソッド

setRequiredメソッドを使用すると、リストアイテム(プルダウンメニュー)の質問を回答必須に設定できます。これにより、フォームの送信にはその質問への回答が必須となります。以下のコードは、リストアイテムを必須に設定する方法を示しています。

function setListRequired() {
  var form = FormApp.getActiveForm();
  var item = form.addListItem();
  item.setTitle('必須の質問');
  item.setRequired(true);
}

setTitleメソッド

setTitleメソッドにより、リストアイテムのタイトルを設定または更新できます。タイトルは質問の内容を説明するために重要です。以下の例では、プルダウンメニューの質問にタイトルを設定しています。

function setListTitle() {
  var form = FormApp.getActiveForm();
  var item = form.addListItem();
  item.setTitle('この質問のタイトルを設定');
}

MultipleChoiceItemクラス

setChoiceValuesメソッド

setChoiceValuesメソッドは、複数選択肢アイテムに選択肢を設定する際に使用されます。このメソッドを使って、ユーザーが一つ選択する質問のオプションを指定できます。以下の例では、複数選択肢質問に対して複数の選択肢を設定しています。

function setMultipleChoiceOptions() {
  var form = FormApp.getActiveForm();
  var item = form.addMultipleChoiceItem();
  item.setTitle('好きな色は?');
  item.setChoiceValues(['赤', '青', '緑', '黄']);
}

setRequiredメソッド

このメソッドは、複数選択肢の質問を回答必須にするために使用します。フォーム送信時にユーザーがこの質問に回答することを保証するために有用です。以下のコードは、複数選択肢質問を必須にする方法を示しています。

function setMultipleChoiceRequired() {
  var form = FormApp.getActiveForm();
  var item = form.addMultipleChoiceItem();
  item.setTitle('必須の質問');
  item.setRequired(true);
}

setTitleメソッド

複数選択肢質問のタイトルを設定または更新するためにsetTitleメソッドが使用されます。このタイトルは質問の目的をユーザーに伝えるために重要です。以下の例では、複数選択肢質問に対してタイトルを設定しています。

function setMultipleChoiceTitle() {
  var form = FormApp.getActiveForm();
  var item = form.addMultipleChoiceItem();
  item.setTitle('この質問にタイトルを設定');
}

TextItemクラス

setRequiredメソッド

setRequiredメソッドを使用して、テキストアイテム(記述式質問)を回答必須に設定できます。これは、フォームの送信にあたり、ユーザーが特定の質問に回答することを強制するために重要です。以下のコードは、テキストアイテムを必須項目として設定する方法を示しています。

function setTextItemRequired() {
  var form = FormApp.getActiveForm();
  var item = form.addTextItem();
  item.setTitle('お名前');
  item.setRequired(true);
}

setValidationメソッド

setValidationメソッドは、テキストアイテムに対して特定のバリデーションルールを設定するために使用されます。例えば、入力値が特定のフォーマットに合致するかをチェックするために利用できます。以下の例では、Eメールアドレスのバリデーションをテキストアイテムに設定しています。

function setTextItemValidation() {
  var form = FormApp.getActiveForm();
  var item = form.addTextItem();
  item.setTitle('Eメールアドレス');
  var validation = FormApp.createTextValidation()
    .requireTextIsEmail()
    .build();
  item.setValidation(validation);
}

setTitleメソッド

テキストアイテムの質問にタイトルを設定または更新するためにsetTitleメソッドを使用します。タイトルは質問の内容をユーザーに明確に伝えるために重要です。以下の例では、テキストアイテムに「ご意見」を求める質問のタイトルを設定しています。

function setTextItemTitle() {
  var form = FormApp.getActiveForm();
  var item = form.addTextItem();
  item.setTitle('ご意見をお聞かせください');
}

TextValidationBuilderクラス

buildメソッド

buildメソッドは、TextValidationBuilderクラスで定義されたバリデーションルールを完成させ、テキストアイテムに適用するために使用します。このメソッドを通じて、フォームの入力値に対する厳密なチェックを実施できます。以下の例では、テキストアイテムに設定するEメールアドレスのバリデーションをビルドしています。

function buildTextValidation() {
  var validation = FormApp.createTextValidation()
    .requireTextIsEmail()
    .build();
  // このバリデーションをテキストアイテムに適用するコードをここに追加
}

requireTextIsEmailメソッド

requireTextIsEmailメソッドは、入力されたテキストがEメールアドレスの形式であることを要求するバリデーションルールを作成する際に使用されます。このルールをテキストアイテムに適用することで、ユーザーが有効なEメールアドレスを入力することを保証できます。以下のコードスニペットは、Eメールアドレスのバリデーションルールを作成しています。

function requireEmailValidation() {
  var validation = FormApp.createTextValidation()
    .requireTextIsEmail()
    .build();
  // このバリデーションをテキストアイテムに適用するコードをここに追加
}
目次