見出し画像

GAS(Google Apps Script)でスプレッドシートからフォームを自動生成するマクロを作りました その2〜フォームを作成する〜

スクリプトの基本

前回の記事で、スプレッドシートからフォームを出力するマクロを公開しました。

記事内で、マクロ自体が配布されているので、必要な方はコピーしてご使用ください。

前回は、スクリプトエディタを表示するところまでを掲載したので、続きを書きたいと思います。まず、スクリプトエディタを立ち上げると、

function myFunction() {
 
}

というような記述かあるかと思います。これは、myfunctionという関数を「{」から「}」までの範囲で記述します、という意味になります。この範囲内に、実現したい命令を書いていくことになります。

まずは、最も簡単なフォームを作るための命令を書いていきます。

function createEventForm(){
 const Form = FormApp.create("新しいフォーム");
}

FormAppオブジェクトのcreateメソッドを用いて"新しいフォーム"という名前のフォームを作成し、それをFormという定数に格納します。

定数(const)は、一度設定したら書き換えができない保存箱のようなものです。

入力を終えたら、実行ボタンを押します。

図1

すると、新しいフォームというフォームか、自分のマイドライブに作成されます。
スクリーンショット 2020-05-09 0.56.39

ラジオボタン等の挿入

ラジオボタンを挿入するには

 var radio = Form.addMultipleChoiceItem().setTitle("設問のタイトル");

のように記述します。左辺はradioというオブジェクト変数を定義していますのが、変数名radioでなくても、何でもかまいません。

また、選択肢を挿入するには、

//選択肢の配列を作る
var options=new Array('選択肢1', '選択肢2', '選択肢3');
//選択肢をradioに反映さぜる
radio.setChoiceValues(options);

このように記述します。radioというオブジェクトに対してsetChoiceValueメソッドを適用しますが、引数には配列を用います。

フォームの選択肢などは、基本的に配列を作って読み込ませる形になります。

以上をまとめて書くと、

function createEventForm(){
 //Formという定数を定義し、新しいフォームを格納
 const Form = FormApp.create("新しいフォーム");
 //変数radioにラジオボタンのオブジェクトを格納
 var radio = Form.addMultipleChoiceItem().setTitle("設問のタイトル");
 //選択肢の配列を作る
 var options=new Array('選択肢1', '選択肢2', '選択肢3');
 //選択肢をradioに反映さぜる
 radio.setChoiceValues(options);
}

このようになります。これで、選択肢のあるフォームを作れました。

その他の要素の挿入

また、ラジオボタン以外を使いたい場合は、以下のメソッドを使います。

長文記述

変数= Form.addParagraphTextItem();

短文記述

変数= Form.addTextItem();

チェックボックス

変数 = Form.addCheckboxItem();

プルダウンリスト

変数 = Form.addListItem();

マクロの作成にあたって、こちらを参考にしました。

次回は、スプレッドシートのセルから値を代入する方法をみていきたいと思います。

この記事が気に入ったらサポートをしてみませんか?