GAS

【GAS】スプレッドシートで2つのプルダウン連動させる

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列の
プルダウンが「犬、猫、馬」のリストになります。