GASでGoogleフォームを作成する最も簡単なスクリプト


application-form

photo credit: cavale shh via photopin (license)

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

イベントの申し込み受付や、アンケートなどを行いたいときに、Googleフォームは大変便利ですよね。

簡単な編集できちんとしたフォームが作れますし、なにせ無料でずっと使い続けることができます。

Google Apps Scriptでは、そのGoogleフォームも操作をすることもできます!

毎月のように似たようなイベントを開催している会社さん、定期的に似たようなアンケートを行っている会社さん、いらっしゃいますよね…?

毎回…

  1. GoogleドライブからGoogleフォームを新規作成して
  2. フォームのタイトルを変更して
  3. フォームの説明加えて
  4. 質問追加して

…って面倒ですよね。

コピーして作ればいいですが、もっとスマートなやり方があります。

GASを使えば、ちょちょっとスプレッドシートに必要事項入力して、実行一発でフォームを作れちゃいますよ。

ということで、今回から何回かのシリーズで、GASでGoogleフォームの作成ツールを作成していきます。

今回は、最初ということで、Googleフォームを作成する最も簡単なスクリプトを紹介していきます。

では、行ってみましょう!

スポンサーリンク

GASでGoogleフォームを作成する最も簡単なスクリプト

Googleフォームを作成するだけなら、なんとたった一行でOK。

では、そのスクリプトを紹介しましょう!

コチラです。

function createEventForm(){
  FormApp.create('もくもく会');
}

後々、スプレッドシートと連携しますので、スプレッドシートのコンテナバインドで作っておいてくださいね。

では、実行してみましょう。

初回は認証が必要ですが、それを終えるとGoogleドライブのマイドライブに以下のように「もくもく会」というフォームが作成されているはずです。

GASで作成したGoogleフォームはマイドライブに生成

ダブルクリックしてフォームを開くと、以下のようなフォームが生成されていることを確認することができます。

GASで作成したフォーム

なんて簡単なんでしょう!

オブジェクトFormAppとは

スクリプトを解説しますね。

まず、「FormApp」というワードが登場します。

GASではGoogleフォームを操作する機能を「Formsサービス」というサービスで提供しています。

FormAppはこのFormsサービスのトップレベルのオブジェクトです。

GASでFormsサービスを使って何らかの操作をする場合には、まずこのFormAppオブジェクトを経由するところからはじまります。

createメソッドでフォームを作成する

そのFormAppオブジェクトに対して、createメソッドを使用しています。

その名の通り、フォームを生成するメソッドですね。

書式は以下の通り、引数にフォームのタイトルを文字列で指定します。

FormApp.create(タイトル)

後ほど活用しますが、createメソッドの戻り値は、生成したフォームを表すFormオブジェクトです。

生成したフォームに質問や説明などを設定、追加していくには、そのFormオブジェクトに対して行っていけばOKです。

スプレッドシートの内容からフォームを生成する

setDescriptionメソッドでフォームの説明を設定する

さすがに素っ気ないので、説明くらい加えておきましょうか。

フォームの説明を設定するには、Formオブジェクトに対してsetDescriptionメソッドを使います。

書式はコチラです。

Formオブジェクト.setDescription(説明)

説明は文字列で指定します。

例えば、以下のようにすれば、フォームの説明も設定することができるわけですね。

function createEventForm(){
  const form = FormApp.create('もくもく会');
  form.setDescription('説明');
}

スプレッドシートのデータを元にフォームを生成する

ただ、イベントの日時やスケジュール、募集要項など、箇条書きや改行を駆使して入力したいので、スクリプト内にベタ打ちだと大変です。

ということで、スプレッドシートの入力を活用してフォームを作成しましょう。

例えば、以下のようなスプレッドシートです。

フォームを作成する元となるスプレッドシートのデータ

「イベント概要」というシートに、イベントタイトルとイベント概要(=説明)を記載しています。

このデータを元にフォームを作成するスクリプトがコチラです。ちなみに、スクリプトは上記スプレッドシートのコンテナバインドで作成してくださいね。

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);
  form.setDescription(formDescription);
  
}

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

スプレッドシートのデータをもとに作成したフォーム

まとめ

以上、GASでGoogleフォームを作成する最も簡単なスクリプトについて解説をしました。

フォーム…作成するならたった一行、すごいですね。

スプレッドシートのデータを取得する部分に配列を使用していますが、このあたり詳しく知りたい方は、以下の記事もご参考ください。

【初心者向けGAS】スプレッドシートのセル範囲の値を二次元配列として取得して取り扱う方法
Google Apps Script初心者向けのお題として、名言Botの作り方をお伝えしています。今回は、スプレッドシートのセル範囲の値を二次元配列としてgetValuesで取得して取り扱う方法です。

次回は、作成したフォームの保存場所を指定する方法です。

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

どうぞお楽しみに!

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

イベントの申し込みやアンケートにとっても便利なGoogleフォーム。スプレッドシートの入力内容をもとに、一発でフォームを作成するツールを作っていきます。
  1. GASでGoogleフォームを作成する最も簡単なスクリプト
  2. GASで作成したGoogleフォームを指定のフォルダに移動する方法
  3. GASでGoogleフォームに記述式の質問を追加する方法
  4. GASでGoogleフォームにメールアドレスの入力欄とバリデーションを追加する方法
  5. GASでGoogleフォームにラジオボタンの質問を追加する方法
  6. GASでGoogleフォームにチェックボックス形式の質問を追加する方法
  7. GASでGoogleフォームにプルダウンリストの質問を追加する方法
  8. Googleフォームの質問の選択肢をスプレッドシートのデータから生成するGAS関数の作り方
  9. GASでGoogleフォームに追加できる質問の種類とそのメソッドまとめ

タイトルとURLをコピーしました