みなさん、こんにちは!
タカハシ(@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(){ var form = FormApp.create('もくもく会'); form.setDescription('説明'); }
スプレッドシートのデータを元にフォームを生成する
ただ、イベントの日時やスケジュール、募集要項など、箇条書きや改行を駆使して入力したいので、スクリプト内にベタ打ちだと大変です。
ということで、スプレッドシートの入力を活用してフォームを作成しましょう。
例えば、以下のようなスプレッドシートです。
「イベント概要」というシートに、イベントタイトルとイベント概要(=説明)を記載しています。
このデータを元にフォームを作成するスクリプトがコチラです。ちなみに、スクリプトは上記スプレッドシートのコンテナバインドで作成してくださいね。
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); form.setDescription(formDescription); }
実行すると、以下のようなフォームを作成することができます。
まとめ
以上、GASでGoogleフォームを作成する最も簡単なスクリプトについて解説をしました。
フォーム…作成するならたった一行、すごいですね。
スプレッドシートのデータを取得する部分に配列を使用していますが、このあたり詳しく知りたい方は、以下の記事もご参考ください。

次回は、作成したフォームの保存場所を指定する方法です。
どうぞお楽しみに!