やりたいこと
- スクリプト内にデータの入力規則のリストを設定しておく
- A列に値を入れると、B列にデータの入力規則が追加される
- 列の値が空になると、B列の入力規則がクリアされる(選択肢が消える)
このように
コード.gs
var sheet = SpreadsheetApp.getActiveSheet();
var editcol = 1;// この列が編集されたら
var listcol = 2;// この列のデータの入力規則を設定する(editcolが空ならクリアする)
var dataList = [
'TODO',
'INPROGRESS',
'DONE'
]
function onEdit() {
var active = sheet.getActiveRange();
var row = active.getRow();
var range = sheet.getRange(row, listcol);
if(active.getColumn() === editcol) {
if(active.getValue() === '') {
range.clearDataValidations();// データの入力規則をクリアする
} else {
addDataValidation(range);
}
}
}
//データの入力規則を設定する
function addDataValidation(range) {
range.setDataValidation(SpreadsheetApp.newDataValidation()
.setAllowInvalid(true)
.requireValueInList(dataList, true)
.build());
}
|
参考
Class DataValidationBuilder
https://developers.google.com/apps-script/reference/spreadsheet/data-validation-builder
