ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
Googleフォーム プルダウン(ドロップダウン)リストの項目をスプレッドシートから読み込んで追加する方法
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- 手軽にスプレッドシートからGoogleフォームに項目を追加できるようになります。
- GASって何?状態であってもコピペでできます。
- ボタンからGASを呼び出す方法がわかります。
なので、サクッとマスターして
と答えてあげてください。
今回は、名前付き範囲を使用してスクリプトの変更箇所も2箇所に減りました。
動画はこちら
スクリプトはこちら
あなたが変更箇所は★の部分です
const FORMID = '★★★★★★★★' //① GoogleフォームのID
const ITEMNAME = '★★★★' //② 項目のタイトル&名前付き範囲の名称
//③以下のいずれかを呼び出す
//AddGFormItems_List //プルダウン
//AddGFormItems_Check //チェックボックス
//AddGFormItems_Radio //ラジオボタン
const ITEM_LIST = 1
const ITEM_CHEKBOX = 2
const ITEM_RADIO = 3
// ラジオボタンの項目を追加する
function AddGFormItems_Radio() {
AddGoogleFormItems(ITEM_RADIO)
}
// プルダウンの項目を追加する
function AddGFormItems_List() {
AddGoogleFormItems(ITEM_LIST)
}
// チェックボックスの項目を追加する
function AddGFormItems_Check() {
AddGoogleFormItems(ITEM_CHEKBOX)
}
/**
* AddGoogleFormItems
* Googleフォームのプルダウンリスト、チェックボックス、リストボックスに項目を追加する
*
* @itemkind {integer} 項目の種別
* @return
* @customfunction
* */
function AddGoogleFormItems(itemkind) {
const form = FormApp.openById(FORMID)
const items = form.getItems()
let section = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(ITEMNAME).getValues()
section = section.filter(v => v[0])
for (let i = 0; i < items.length; i++) {
const item = items[i]
const itemName = item.getTitle()
const itemId = item.getId()
if (itemName == ITEMNAME) {
switch (itemkind) {
case ITEM_LIST:
items[i].asListItem().setChoiceValues(section) //プルダウンメニュー
break
case ITEM_CHEKBOX:
items[i].asCheckboxItem().setChoiceValues(section) //チェックボックス
break
case ITEM_RADIO:
items[i].asMultipleChoiceItem().setChoiceValues(section) //ラジオボタン
break
}
}
}
}
主な手順
Step1.
①GoogleフォームのIDをスクリプトのFORMIDにコピペします。
Setp2.
①スプレッドシートの名前付き範囲とGoogleフォームの項目名と
スクリプト内のITEMNAMEを同じ名称にします。
Step3.
Googleフォームの項目に合わせて以下のいずれかを呼び出します。
//AddGFormItems_List //プルダウン
//AddGFormItems_Check //チェックボックス
//AddGFormItems_Radio //ラジオボタン
詳細は動画をご覧ください。
最後までご覧いただきありがとうございます。
つぎはこちら
Googleフォームに初期値を表示させる方法(自分用も作れる)
手軽にGoogleフォームの初期値を設定することができます。
がんばれば、編集権限がなくても自分用の初期値を設定することができます。