プロが教えるわが家の防犯対策術!

Google Formを使ってアンケートを実施します。

設問は以下のとおりです。
設問1(ラジオボタン)
設問2(ラジオボタン)
名前(記述式)
メールアドレス(記述式)
設問3(ラジオボタン)
設問4(ラジオボタン)
設問5(ラジオボタン)
設問6(チェックボックス)

名前とメールアドレスは記述してもらい、設問6は選択肢から4つ選びます。その他は選択肢から1つ選びます。設問1、設問2、名前、メールアドレスは回答必須です。

選択肢はどれも多く手作業でするのは大変ですし、同じような作業を今後もする可能性があるので、なんとかGoogle Apps Scriptを使ってできないかと考えています。

こちらのサイトで選択肢を作成するスクリプトを見つけたのですが、複数の設問に選択肢をつけていくにはどうしたらいいでしょうか?
https://note.com/taraco123/n/nfcfede8adc4f

上記のサイトについては質問、コメントができないみたいなのでここに質問させていただきました。

上記のサイトにあるスクリプトです。
function myFunction() {

//スプレッドシートから選択肢情報を取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var rows = sheet.getLastRow()-1;
var values = sheet.getRange(2,1,rows,1).getValues();

var choices = values.flat(); //二次元配列を一次元配列に変換

//フォームに選択肢を反映
var form = FormApp.openById("1H24o4C5IqRtQBBvdZjRF6F2K0p_OMScPhky12j7bJKs");
var items = form.getItems();

items.forEach(function(item){
var title = item.getTitle();
if(title == "好きな小説家を選んでください"){
var choiceItem = item.asListItem(); //プルダウン設問として取得
choiceItem.setChoiceValues(choices); //選択肢を設定
}
});
}

A 回答 (1件)

こんにちは



>選択肢を作る方法を教えて下さい。
GASは知りませんし、使える環境にもないので、「方法」だけでもよければ・・・

基本的に、シートの各列に各項目に対する選択肢を並べておいて、シートの列のループ(=項目のループ)で順にご提示の処理を行えば可能と思われます。
ご質問の場合は、途中で形式が何種類か変わるようなので、全部が一律の処理というわけではないようです。
例えば、シートの2行目に形式分類等を入れておいて、形式によって処理内容を分岐するなどの工夫が必要になるかも知れません。

GASのオブジェクト(クラス)やメソッドに関してはドキュメントが公開されているようですので、そちらを参照することで処理そのものを作成することは可能であろうと思われます。
(理解するのには、javascriptの基本知識程度は必要と思いますけれど…)
例えばForm関連であれば、
https://developers.google.com/apps-script/refere …
※ シートその他の関連ドキュメントもこのサイトにあります。

もしも、何もせずにコピペできるものをお求めなのなら、「使える環境をお持ちで、かつ、作ってあげよう」という方からの回答をお待ちください。
(現れるかどうかはわかりませんけれど・・・)

>上記のサイトについては質問、コメントができないみたいなので~~
調べてみたのでしょうか?
サイトの記事の作者への質問等は可能ですよ。(ログインが必要みたいですが)
https://note.com/taraco123/message
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

自己解決いたしました。

お礼日時:2021/08/10 15:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!