google formにチェックボックスグリッドを設定し、GASで回答を処理しようとしたときに少し戸惑ったので共有します。
チェックボックスグリッドとは
下記のような回答形式になります。
1月1日の0時を選択する場合は、一番左上にチェックして回答します。
GASで回答取得
下記の方法で取得できます。
function submitform(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("シート2");
sheet.getRange(1,1).setValue("1月1日");
sheet.getRange(1,2).setValue(e.namedValues["グリッドテスト [1月1日]"]);
sheet.getRange(2,1).setValue("1月2日");
sheet.getRange(2,2).setValue(e.namedValues["グリッドテスト [1月2日]"]);
sheet.getRange(3,1).setValue("1月3日");
sheet.getRange(3,2).setValue(e.namedValues["グリッドテスト [1月3日]"]);
}
グーグルフォームは、e.namedValues[“質問のタイトル”]でデータが取得が、チェックボックスグリッドの場合は、e.namedValues[“質問のタイトル [行の項目名”]] で取得します。
今回の例で、いうと1月1日の何時にチェックがついているかを取得する場合は、e.namedValues[“グリッドテスト [1月1日]”] とします。
複数チェックしていた場合は、カンマ区切りで列名が記載されています。
例えば、フォームで下記のような回答をしたとします。
上記で記載のコードのアウトプットは下記になります。
あとは、取得結果をカンマで区切ってチェックしていくことで、どの項目にチェックが入ってるかを取得できるかと思います。
試してみてください。
コメントを書く