Googleスプレッドシート│指定範囲にチェックボックスのチェックがあるかを判定する方法

Googleスプレッドシートでは「挿入」>「チェックボックス」を使うことで、簡単にチェックボックスを追加できます。

この記事では、スプレッドシート上のチェックボックスが「ON」かどうかをGoogle Apps Script(GAS)で判定する方法をご紹介します。

手順の多い進捗チェックなどでチェックボックスが利用できるのですが、その状態を調べるのに便利です。

目次

Googleスプレッドシートで指定範囲にチェックボックスのチェックがあるかを判定する方法

例えば、以下のようにA1〜H1の範囲にチェックボックスが並んでいたとします。

A1B1C1D1E1F1G1H1

この範囲のチェックボックスにどれか1つでもチェックが入っているかを判定したいというケースです。

GASで判定する方法

以下のスクリプトを使えば、指定範囲のチェックボックスに対してチェックが入っているかを順番にログに出力できます。

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var cells = sheet.getRange(1, 1, 1, 8); // A1〜H1
  var values = cells.getValues(); 

  for (var i = 0; i < cells.getNumColumns(); i++) {
    if (values[0][i] === true) {
      Logger.log("列 " + (i+1) + ":チェックがついています");
    } else {
      Logger.log("列 " + (i+1) + ":チェックがついていません");
    }
  }
}

応用パターン

チェックが1つでも付いていたら何か処理を実行したい場合は、以下のようにも書けます:

function isChecked() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var values = sheet.getRange(1, 1, 1, 8).getValues()[0];
  
  var isAnyChecked = values.some(function(value) {
    return value === true;
  });

  if (isAnyChecked) {
    Logger.log("少なくとも1つはチェックされています");
  } else {
    Logger.log("すべて未チェックです");
  }
}
  • チェックボックスは true(ON)/false(OFF) で判定できます。
  • .getValues() で取得した配列に対して forsome() でチェック状態を確認可能。
  • 定期的なチェックや通知処理、進捗管理などに応用可能。

まとめ

Googleスプレッドシートでのチェック判定にGASを組み合わせることで、より実用的なシート管理が実現できます。

定期チェックや通知のトリガー処理と組み合わせて、さらに便利に使いこなしましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次