スポンサーリンク
Google スプレッドシートで連動プルダウンを作る
A列のプルダウンを選んだら、B列のプルダウンを表示する機能を
作ってみました。
データは”マスタ”シートに入力しておきます。
GASのコードは以下の通り
function onEdit(event){
var ss = event.source.getActiveSheet();
var r = event.source.getActiveRange();
var sheet_name = ss.getName();
//マスタシート以外 1列目のみ
if(r.getColumn() == 1 && sheet_name != "マスタ"){
//Browser.msgBox(r.getValues());
var list = getList(r.getValues());
var r2 = r.offset(0, 1);
r2.setValue("");
var rule = SpreadsheetApp
.newDataValidation()
.requireValueInList(list[0], true)
.build();
r2.setDataValidation(rule);
}
}
function getList(selectValue){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('マスタ');
var data = sheet.getRange(1, 1, sheet.getLastRow()).getValues();
//Browser.msgBox(data);
for(var i = 0; i < data.length; i++){
//Browser.msgBox(String(data[i]));
if (String(selectValue) == String(data[i])) {
var values = sheet.getRange(i + 1, 2, 1, 10).getValues();
return values;
}
}
}
function onEdit()はスプレッドシートの変更イベントを取得できる
関数です。
実際の動きは、A列のプルダウンで「どうぶつ」を選ぶと、B列の
プルダウンが「犬、猫、馬」のリストになります。