LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

2019年10月24日木曜日

スプレッドシートのA列を編集したときに入力規則を設定したい


やりたいこと

  1. スクリプト内にデータの入力規則のリストを設定しておく
  2. A列に値を入れると、B列にデータの入力規則が追加される
  3. 列の値が空になると、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

最新の投稿

選択したテキストを配列に入れてテキストエリアに出力したい

今回やりたいこと アプリケーションの中で 選択したテキストを取得する。 選択したテキストを テキストエリアに入れる。 選択したテキストを 配列に追加していく。 STEP1 「テキストを」を選択するとテキストエリアに「テキストを」が入る。 STEP2 その後、「追加して」を選択する...