みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
イベントの申し込み受付や、アンケートなどを行いたいときに、Googleフォームは大変便利ですよね。
簡単な編集できちんとしたフォームが作れますし、なにせ無料でずっと使い続けることができます。
Google Apps Scriptでは、そのGoogleフォームも操作をすることもできます!
毎月のように似たようなイベントを開催している会社さん、定期的に似たようなアンケートを行っている会社さん、いらっしゃいますよね…?
毎回…
- GoogleドライブからGoogleフォームを新規作成して
- フォームのタイトルを変更して
- フォームの説明加えて
- 質問追加して
…って面倒ですよね。
コピーして作ればいいですが、もっとスマートなやり方があります。
GASを使えば、ちょちょっとスプレッドシートに必要事項入力して、実行一発でフォームを作れちゃいますよ。
ということで、今回から何回かのシリーズで、GASでGoogleフォームの作成ツールを作成していきます。
今回は、最初ということで、Googleフォームを作成する最も簡単なスクリプトを紹介していきます。
では、行ってみましょう!
GASでGoogleフォームを作成する最も簡単なスクリプト
Googleフォームを作成するだけなら、なんとたった一行でOK。
では、そのスクリプトを紹介しましょう!
コチラです。
function createEventForm(){ FormApp.create('もくもく会'); }
後々、スプレッドシートと連携しますので、スプレッドシートのコンテナバインドで作っておいてくださいね。
では、実行してみましょう。
初回は認証が必要ですが、それを終えるとGoogleドライブのマイドライブに以下のように「もくもく会」というフォームが作成されているはずです。
ダブルクリックしてフォームを開くと、以下のようなフォームが生成されていることを確認することができます。
なんて簡単なんでしょう!
オブジェクトFormAppとは
スクリプトを解説しますね。
まず、「FormApp」というワードが登場します。
GASではGoogleフォームを操作する機能を「Formsサービス」というサービスで提供しています。
FormAppはこのFormsサービスのトップレベルのオブジェクトです。
GASでFormsサービスを使って何らかの操作をする場合には、まずこのFormAppオブジェクトを経由するところからはじまります。
createメソッドでフォームを作成する
そのFormAppオブジェクトに対して、createメソッドを使用しています。
その名の通り、フォームを生成するメソッドですね。
書式は以下の通り、引数にフォームのタイトルを文字列で指定します。
後ほど活用しますが、createメソッドの戻り値は、生成したフォームを表すFormオブジェクトです。
生成したフォームに質問や説明などを設定、追加していくには、そのFormオブジェクトに対して行っていけばOKです。
スプレッドシートの内容からフォームを生成する
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フォームを一発で作成するツールを作る
イベントの申し込みやアンケートにとっても便利なGoogleフォーム。スプレッドシートの入力内容をもとに、一発でフォームを作成するツールを作っていきます。- GASでGoogleフォームを作成する最も簡単なスクリプト
- GASで作成したGoogleフォームを指定のフォルダに移動する方法
- GASでGoogleフォームに記述式の質問を追加する方法
- GASでGoogleフォームにメールアドレスの入力欄とバリデーションを追加する方法
- GASでGoogleフォームにラジオボタンの質問を追加する方法
- GASでGoogleフォームにチェックボックス形式の質問を追加する方法
- GASでGoogleフォームにプルダウンリストの質問を追加する方法
- Googleフォームの質問の選択肢をスプレッドシートのデータから生成するGAS関数の作り方
- GASでGoogleフォームに追加できる質問の種類とそのメソッドまとめ