質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

0回答

1476閲覧

[GAS]Googleフォーム:回答によってセクションを移動したい

aRyo

総合スコア23

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2021/11/09 02:59

GASについての質問になります。

セクション1(大項目)でプルダウン式の質問を行い、その回答によってそれぞれのセクションに飛ぶプログラムを作成したいです。

現在、スプレッドシートから入力データをインポートするところまで出来たのですが、大項目からそれぞれのセクションに飛ぶ条件分岐方法が分かりません。

やり方、ご教授頂けないでしょうか。

GAS

1function overwriteDjList() { 2 3 /** 4 // スプレッドシートの情報を取得する 5 // 6 **/ 7 8 //スプレッドシートのID →「https://docs.google.com/spreadsheets/d/△△△/edit#gid=0」の△△△を↓に記述 9 var sheets = SpreadsheetApp.openById('********').getSheets(); 10 11 // シート1の情報を取得 12 //(デフォルトのスプレッドシートの場合、シート1という名称になっています) 13 var sheet = sheets[0]; 14 15 // スプレッドシートのA1のセルが大項目になります 16 if("農薬種類" == sheet.getRange("A1").getValue()){ 17 18 // A行の2行目からコンテンツをもつ最後の行までの値を配列で取得する 19 var colA = sheet.getRange(2, 1, sheet.getLastRow() - 1).getValues(); 20 } 21 22 /** 23 // Googleフォームのプルダウン内の値を上書きする 24 // 25 **/ 26 27 // GoogleフォームのIDを設定 →「https://docs.google.com/forms/d/〇〇〇/edit」の〇〇〇を↓に記述 28 var form = FormApp.openById('********'); 29 30 // 質問項目がプルダウンのもののみ取得 31 var items = form.getItems(FormApp.ItemType.LIST); 32 33 items.forEach(function(item){ 34 // 質問項目が「好きなDJを選択して下さい」を含むものに対して、スプレッドシートの内容を反映する 35 if(item.getTitle().match(/農薬種類.*$/)){ 36 var listItemQuestion = item.asListItem(); 37 var choices = []; 38 39 colA.forEach(function(name){ 40 if(name != ""){ 41 choices.push(listItemQuestion.createChoice(name)); 42 } 43 }); 44 45 // プルダウンの選択肢を上書きする 46 listItemQuestion.setChoices(choices); 47 } 48 }); 49 50 51////////////////////////////////////////////////////////////////////////////// 52 53 54 /** 55 // スプレッドシートの情報を取得する 56 // 57 **/ 58 59 //スプレッドシートのID →「https://docs.google.com/spreadsheets/d/△△△/edit#gid=0」の△△△を↓に記述 60 var sheets = SpreadsheetApp.openById('********').getSheets(); 61 62 // シート1の情報を取得 63 //(デフォルトのスプレッドシートの場合、シート1という名称になっています) 64 var sheet = sheets[0]; 65 66 // スプレッドシートのA1のセルが「農薬種類」の場合 67 if("殺菌剤" == sheet.getRange("B1").getValue()){ 68 69 // A行の2行目からコンテンツをもつ最後の行までの値を配列で取得する 70 var colA = sheet.getRange(2, 2, sheet.getLastRow() - 1).getValues(); 71 } 72 73 /** 74 // Googleフォームのプルダウン内の値を上書きする 75 // 76 **/ 77 78 // GoogleフォームのIDを設定 →「https://docs.google.com/forms/d/〇〇〇/edit」の〇〇〇を↓に記述 79 var form = FormApp.openById('********'); 80 81 // 質問項目がプルダウンのもののみ取得 82 var items = form.getItems(FormApp.ItemType.LIST); 83 84 items.forEach(function(item){ 85 // 質問項目が「好きなDJを選択して下さい」を含むものに対して、スプレッドシートの内容を反映する 86 if(item.getTitle().match(/殺菌剤.*$/)){ 87 var listItemQuestion = item.asListItem(); 88 var choices = []; 89 90 colA.forEach(function(name){ 91 if(name != ""){ 92 choices.push(listItemQuestion.createChoice(name)); 93 } 94 }); 95 96 // プルダウンの選択肢を上書きする 97 listItemQuestion.setChoices(choices); 98 } 99 }); 100 101 102////////////////////////////////////////////////////////////////////////////// 103 104 105 /** 106 // スプレッドシートの情報を取得する 107 // 108 **/ 109 110 //スプレッドシートのID →「https://docs.google.com/spreadsheets/d/△△△/edit#gid=0」の△△△を↓に記述 111 var sheets = SpreadsheetApp.openById('********').getSheets(); 112 113 // シート1の情報を取得 114 //(デフォルトのスプレッドシートの場合、シート1という名称になっています) 115 var sheet = sheets[0]; 116 117 // スプレッドシートのA1のセルが「農薬種類」の場合 118 if("殺虫剤" == sheet.getRange("C1").getValue()){ 119 120 // A行の2行目からコンテンツをもつ最後の行までの値を配列で取得する 121 var colA = sheet.getRange(2, 3, sheet.getLastRow() - 1).getValues(); 122 } 123 124 /** 125 // Googleフォームのプルダウン内の値を上書きする 126 // 127 **/ 128 129 // GoogleフォームのIDを設定 →「https://docs.google.com/forms/d/〇〇〇/edit」の〇〇〇を↓に記述 130 var form = FormApp.openById('********'); 131 132 // 質問項目がプルダウンのもののみ取得 133 var items = form.getItems(FormApp.ItemType.LIST); 134 135 items.forEach(function(item){ 136 // 質問項目が「好きなDJを選択して下さい」を含むものに対して、スプレッドシートの内容を反映する 137 if(item.getTitle().match(/殺虫剤.*$/)){ 138 var listItemQuestion = item.asListItem(); 139 var choices = []; 140 141 colA.forEach(function(name){ 142 if(name != ""){ 143 choices.push(listItemQuestion.createChoice(name)); 144 } 145 }); 146 147 // プルダウンの選択肢を上書きする 148 listItemQuestion.setChoices(choices); 149 } 150 }); 151 152 153////////////////////////////////////////////////////////////////////////////// 154 155 156 /** 157 // スプレッドシートの情報を取得する 158 // 159 **/ 160 161 //スプレッドシートのID →「https://docs.google.com/spreadsheets/d/△△△/edit#gid=0」の△△△を↓に記述 162 var sheets = SpreadsheetApp.openById('********').getSheets(); 163 164 // シート1の情報を取得 165 //(デフォルトのスプレッドシートの場合、シート1という名称になっています) 166 var sheet = sheets[0]; 167 168 // スプレッドシートのA1のセルが「農薬種類」の場合 169 if("展着剤" == sheet.getRange("D1").getValue()){ 170 171 // A行の2行目からコンテンツをもつ最後の行までの値を配列で取得する 172 var colA = sheet.getRange(2, 4, sheet.getLastRow() - 1).getValues(); 173 } 174 175 /** 176 // Googleフォームのプルダウン内の値を上書きする 177 // 178 **/ 179 180 // GoogleフォームのIDを設定 →「https://docs.google.com/forms/d/〇〇〇/edit」の〇〇〇を↓に記述 181 var form = FormApp.openById('********'); 182 183 // 質問項目がプルダウンのもののみ取得 184 var items = form.getItems(FormApp.ItemType.LIST); 185 186 items.forEach(function(item){ 187 // 質問項目が「好きなDJを選択して下さい」を含むものに対して、スプレッドシートの内容を反映する 188 if(item.getTitle().match(/展着剤.*$/)){ 189 var listItemQuestion = item.asListItem(); 190 var choices = []; 191 192 colA.forEach(function(name){ 193 if(name != ""){ 194 choices.push(listItemQuestion.createChoice(name)); 195 } 196 }); 197 198 // プルダウンの選択肢を上書きする 199 listItemQuestion.setChoices(choices); 200 } 201 }); 202 203 204////////////////////////////////////////////////////////////////////////////// 205 206 207 /** 208 // スプレッドシートの情報を取得する 209 // 210 **/ 211 212 //スプレッドシートのID →「https://docs.google.com/spreadsheets/d/△△△/edit#gid=0」の△△△を↓に記述 213 var sheets = SpreadsheetApp.openById('********').getSheets(); 214 215 // シート1の情報を取得 216 //(デフォルトのスプレッドシートの場合、シート1という名称になっています) 217 var sheet = sheets[0]; 218 219 // スプレッドシートのA1のセルが「農薬種類」の場合 220 if("天敵" == sheet.getRange("E1").getValue()){ 221 222 // A行の2行目からコンテンツをもつ最後の行までの値を配列で取得する 223 var colA = sheet.getRange(2, 5, sheet.getLastRow() - 1).getValues(); 224 } 225 226 /** 227 // Googleフォームのプルダウン内の値を上書きする 228 // 229 **/ 230 231 // GoogleフォームのIDを設定 →「https://docs.google.com/forms/d/〇〇〇/edit」の〇〇〇を↓に記述 232 var form = FormApp.openById('********'); 233 234 // 質問項目がプルダウンのもののみ取得 235 var items = form.getItems(FormApp.ItemType.LIST); 236 237 items.forEach(function(item){ 238 // 質問項目が「好きなDJを選択して下さい」を含むものに対して、スプレッドシートの内容を反映する 239 if(item.getTitle().match(/天敵.*$/)){ 240 var listItemQuestion = item.asListItem(); 241 var choices = []; 242 243 colA.forEach(function(name){ 244 if(name != ""){ 245 choices.push(listItemQuestion.createChoice(name)); 246 } 247 }); 248 249 // プルダウンの選択肢を上書きする 250 listItemQuestion.setChoices(choices); 251 } 252 }); 253 254 255////////////////////////////////////////////////////////////////////////////// 256 257 258 /** 259 // スプレッドシートの情報を取得する 260 // 261 **/ 262 263 //スプレッドシートのID →「https://docs.google.com/spreadsheets/d/△△△/edit#gid=0」の△△△を↓に記述 264 var sheets = SpreadsheetApp.openById('********').getSheets(); 265 266 // シート1の情報を取得 267 //(デフォルトのスプレッドシートの場合、シート1という名称になっています) 268 var sheet = sheets[0]; 269 270 // スプレッドシートのA1のセルが「農薬種類」の場合 271 if("その他" == sheet.getRange("F1").getValue()){ 272 273 // A行の2行目からコンテンツをもつ最後の行までの値を配列で取得する 274 var colA = sheet.getRange(2, 6, sheet.getLastRow() - 1).getValues(); 275 } 276 277 /** 278 // Googleフォームのプルダウン内の値を上書きする 279 // 280 **/ 281 282 // GoogleフォームのIDを設定 →「https://docs.google.com/forms/d/〇〇〇/edit」の〇〇〇を↓に記述 283 var form = FormApp.openById('********'); 284 285 // 質問項目がプルダウンのもののみ取得 286 var items = form.getItems(FormApp.ItemType.LIST); 287 288 items.forEach(function(item){ 289 // 質問項目が「好きなDJを選択して下さい」を含むものに対して、スプレッドシートの内容を反映する 290 if(item.getTitle().match(/その他.*$/)){ 291 var listItemQuestion = item.asListItem(); 292 var choices = []; 293 294 colA.forEach(function(name){ 295 if(name != ""){ 296 choices.push(listItemQuestion.createChoice(name)); 297 } 298 }); 299 300 // プルダウンの選択肢を上書きする 301 listItemQuestion.setChoices(choices); 302 } 303 }); 304}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問