Google Apps Script

「Google Apps Script」からGoogleフォームを作成・操作するには?

毎月、Googleフォームで応募の受け付ける作業をしています。
作業といっても、先月のフォームをコピーして、編集して、と、とても簡単です。
とはいえ、簡単な作業でも自動化したいもの。
というわけで、「Google Apps Script」でGoogleフォームを操作する方法をまとめました。

 

コードはどこに書くの?

「Google Apps Script」単体のファイルに書くのが良いでしょう。
Googleドライブの「+新規」から、「その他」 ⇒ 「Google Apps Script」で単体のファイルができます。
「Google Apps Script」からGoogleフォームを作成・操作するには?

 

フォームを作成するには?

FormApp.create(【タイトル】)を実行するとマイドライブに作成できます。
カッコ内のタイトルを省略するとエラーになります。
作ったフォームを編集・操作するには、変数に入れておくと便利です。

const newForm = FormApp.create('Test');

 

フォームの説明を編集するには?

Formに対して、「setDescription()」で設定します。

const newForm = FormApp.create('Test');
newForm.setDescription('このフォームでGASで作成しました');

「Google Apps Script」からGoogleフォームを作成・操作するには?

 

記述式の質問を追加するには?

短文なら「addTextItem() 」、長文なら「addParagraphTextItem()」を使います。
どちらもFormクラスのメソッドです。

const newForm = FormApp.create('Test');
  newForm.setDescription('このフォームでGASで作成しました');
  newForm.addTextItem().setTitle('氏名').setHelpText('姓と名の間にスペースを入れてください');
  with(newForm.addParagraphTextItem()){
    setTitle('住所');
    setHelpText('都道府県から入力してください');
  }

「Google Apps Script」からGoogleフォームを作成・操作するには?

 

タイトルや説明文の編集方法は?

質問のタイトルは「setTitle()」、説明文は「setHelpText()」で設定します。
上記のコードのように、「.(ドット)」でつないでもいいですし、with文で書いてもいいです。

 

質問を必須にしたい場合は?

アイテムに対してsetRequired(true)を付けます。

const text1 = newForm.addTextItem();
text1.setRequired(true);

 

ラジオボタンの質問を追加するには?

チェックボックスと違い、ラジオボタンは1つの回答を得る質問です。
Formに対して、「addMultipleChoiceItem()」を使います。

const newForm = FormApp.create('Test');
newForm.setDescription('あなたは犬派?猫派?それ以外?');
 
const item = newForm.addMultipleChoiceItem();
item.setChoiceValues(['犬', '猫']).showOtherOption(true).setRequired(true);

「Google Apps Script」からGoogleフォームを作成・操作するには?

 

選択肢のラベルを設定するには?

「setChoiceValues()」を使うのが簡単でしょう。
配列を使って一度にラベルの設定ができます。

 

選択肢に「その他(記述付き)」を入れるには?

「showOtherOption(true)」を使います。
「setChoiceValues()」で「その他」を追加するとボタンしかありません。しかし、このオプションを使えば、記述欄もあります。
その他の内容を具体的に知りたいときに使えますね。

 

チェックボックスの質問を追加するには?

ラジオボタンと違い、チェックボックスは複数の回答を得る質問です。
「addCheckboxItem()」で追加できます。

const newForm = FormApp.create('Test');
const item = newForm.addCheckboxItem();
item.setTitle('好きな動物は?').setChoiceValues(['犬', '猫']).showOtherOption(true).setRequired(true);

 

プルダウンの質問を追加するには?

「addListItem()」を使います。
タイトルや選択肢のラベルの設定方法は、チェックボックスと同じです。

const newForm = FormApp.create('Test');
const item = newForm.addListItem();
item.setTitle('好きな動物は?').setChoiceValues(['犬', '猫']).setRequired(true);

「Google Apps Script」からGoogleフォームを作成・操作するには?

 

均等目盛の質問を追加するには?

「addScaleItem() 」を使います。

const newForm = FormApp.create('Test');
const item = newForm.addScaleItem();
item.setTitle('どのくらい犬が好き?').setBounds(1,10).setLabels('苦手','好き');

「Google Apps Script」からGoogleフォームを作成・操作するには?

 

目盛りの数を指定するには?

「setBounds()」を使います。
引数は、最小と最大の2つ。
最小は「0」か「1」で、最大は「3~10」の範囲です。

 

目盛りのラベルを付けるには?

「.setLabels()」を使います。
引数は2つで、最小と最大に1つずつラベルを付けることができます。

 

選択式(グリッド)の質問を追加するには?

Formに対して、「addGridItem()」を使います。

const newForm = FormApp.create('Test');
const item = newForm.addGridItem();
item.setTitle('昔と変わったことは?')
    .setRows(['嬉しいこと', '怒ること', '哀しいこと', '楽しいこと'])
    .setColumns(['減った', '変わらない', '増えた']);

「Google Apps Script」からGoogleフォームを作成・操作するには?

 

行や列を追加するには?

行を追加するには「setRows()」、列を追加するには「setColumns()」を使います。
引数はいずれも配列です。

 

チェックボックス(グリッド)の質問を追加するには?

「addCheckboxGridItem()」を使います。
行列の追加は選択式(グリッド)と同じです。

const newForm = FormApp.create('Test');
const item = newForm.addCheckboxGridItem();
item.setTitle('やった行事は?')
    .setRows(['初詣', '節分', 'ハロウィン', 'クリスマス'])
    .setColumns(['2021', '2020', '2019', '2018']);

「Google Apps Script」からGoogleフォームを作成・操作するには?

 

回答を集計するスプレッドシートを指定するには?

Formに対して、「setDestination(FormApp.DestinationType.SPREADSHEET, 【対象スプレッドシートのID】)」を使います。
公式リファレンスを見ると、1つ目の引数は現時点で1種類しかないため、定型文として覚えて良さそうです。

const newForm = FormApp.create('Test');
newForm.setDestination(FormApp.DestinationType.SPREADSHEET, '1234567890abcdefghijklmnopqrstuvwxyz');

 

公開URLを取得するには?

Formに対して、「getPublishedUrl()」を使えば取得できます。
「URLを短縮」したい場合は、取得したURLに対して「shortenFormUrl()」を使います。

const newForm = FormApp.create('Test');
 
// 通常のURL
console.log(newForm.getPublishedUrl());
// 短縮したURL
console.log(newForm.shortenFormUrl(newForm.getPublishedUrl()));

 

まとめ

「add〇〇」で追加、「set〇〇」で設定、「get〇〇」で取得ができ、ここに書いたコードで基本的なフォームは作れるようになります。
紹介したコード以外にもまだまだたくさんあるので、興味があればフォームの公式リファレンスをご覧ください。
私がやっていた月1回の作業を「Google Apps Script」に任せたら、あっという間に終わってしまいました。ありがたや、ありがたや。

-Google Apps Script
-, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,