GAS(Google Apps Script)でスプレッドシートからフォームを自動生成するマクロを作りました その2〜フォームを作成する〜
スクリプトの基本
前回の記事で、スプレッドシートからフォームを出力するマクロを公開しました。
記事内で、マクロ自体が配布されているので、必要な方はコピーしてご使用ください。
前回は、スクリプトエディタを表示するところまでを掲載したので、続きを書きたいと思います。まず、スクリプトエディタを立ち上げると、
function myFunction() {
}
というような記述かあるかと思います。これは、myfunctionという関数を「{」から「}」までの範囲で記述します、という意味になります。この範囲内に、実現したい命令を書いていくことになります。
まずは、最も簡単なフォームを作るための命令を書いていきます。
function createEventForm(){
const Form = FormApp.create("新しいフォーム");
}
FormAppオブジェクトのcreateメソッドを用いて"新しいフォーム"という名前のフォームを作成し、それをFormという定数に格納します。
定数(const)は、一度設定したら書き換えができない保存箱のようなものです。
入力を終えたら、実行ボタンを押します。
すると、新しいフォームというフォームか、自分のマイドライブに作成されます。
ラジオボタン等の挿入
ラジオボタンを挿入するには
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();
マクロの作成にあたって、こちらを参考にしました。
次回は、スプレッドシートのセルから値を代入する方法をみていきたいと思います。
この記事が気に入ったらサポートをしてみませんか?