Amazon11/12まで!スマイルSale開催中!セール会場へ

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

チェックボックスを判定するときは、セルの値だけでなく、チェックボックスとして有効な状態かを確認します。

1セルずつisCheckedを使うと、既定のTRUE/FALSEとカスタム値の両方を扱えます。

練習コード・入力JSON・文字変換ブックをダウンロード(ZIP)できます。

この練習ではZIP内のarticle-222.jsか、以下に掲載したコードを使います。

記事ごとに別のApps Scriptプロジェクトを使い、新規の練習データを対象にしてください。

以下は2026年10月2日のローカル模擬検証の記録です。

共通のGASサンプル全体では51項目をローカルの模擬環境で確認しています。

2026年10月28日には配布コードとの一致を確認し、チェック状態の集計や設定不足の7項目を模擬試験しました。

試験ではisChecked()の戻り値を模擬しており、Google側の入力規則の動作を再現したものではありません。

Googleへの認可、実シートの入力規則・標準値・カスタム値での判定は未検証です。

目次

入力例:A2:H2にチェックボックスを並べる

新規シートの1行目を項目名、A2:H2をチェックボックスにします。

A2:H2を選択し、「挿入」→「チェックボックス」で設定して、D2だけをチェックします。

プロパティ設定値
SPREADSHEET_ID練習ブックのID
SHEET_NAMEチェックボックスを置いたシート名

「拡張機能」→「Apps Script」を開き、プロジェクトの設定で上のスクリプトプロパティを指定します。

次のコードを保存し、checkPracticeBoxesを選んで実行します。

初回にアクセス許可を求められたら、練習ブックを読む処理であることを確認して承認してください。

実行ログのcheckedCount、anyChecked、invalidCountを、次の確認表と照合します。

この関数は状態を読み取り、結果をログへ出すだけです。

値の書き換えや通知送信は行いません。

function checkPracticeBoxes() {
  const props = PropertiesService.getScriptProperties();
  const id = props.getProperty('SPREADSHEET_ID');
  const name = props.getProperty('SHEET_NAME');
  if (!id || !name) throw new Error('SPREADSHEET_IDとSHEET_NAMEを設定してください');
  const sheet = SpreadsheetApp.openById(id).getSheetByName(name);
  if (!sheet) throw new Error('対象シートがありません');
  const range = sheet.getRange('A2:H2');
  const cells = [];
  for (let col = 1; col <= range.getNumColumns(); col++) {
    // 1セルずつ判定すると、チェックと未チェックの混在を扱えます。
    const state = range.getCell(1, col).isChecked();
    cells.push({column: col, state: state === true ? 'checked' : state === false ? 'unchecked' : 'invalid'});
  }
  const result = {
    anyChecked: cells.some(x => x.state === 'checked'),
    checkedCount: cells.filter(x => x.state === 'checked').length,
    invalidCount: cells.filter(x => x.state === 'invalid').length,
    cells: cells
  };
  console.log(JSON.stringify(result));
  return result;
}
スポンサーリンク

模擬検証の結果と実シートでの確認点

条件結果
D2だけチェックcheckedCount:1、anyChecked:true、invalidCount:0
すべて未チェックcheckedCount:0、anyChecked:false、invalidCount:0
G2のチェックボックスの入力規則を削除するinvalidCountが増える
カスタムのオン/オフ値1セルごとのisCheckedで判定する
セルに普通のTRUEだけを入れたチェックボックスの入力規則がなければ有効なチェック扱いにしない
同名の別シートを見ていたSPREADSHEET_IDとSHEET_NAMEを確認する

cellsのcolumnは1がA、4がD、8がHです。

stateはchecked、unchecked、invalidのいずれかです。

invalidCountが0でなければ、単に「全部未チェック」と判断せず、対象セルの入力規則や値を確認します。

範囲全体に1回だけisCheckedを呼ぶと、チェック済みと未チェックが混在した状態もnullになります。

この例は8セルを個別に読み取るので、その混在をinvalidとは扱いません。

大きな表へ広げる場合は、呼び出し回数が増えることも考慮します。

停止と戻し方

実行するだけではセルを変更しないため、停止時は関数を呼ばないだけです。

練習で外した入力規則は、そのセルにチェックボックスを設定し直します。

カスタム値を使っていた場合は、元のオン・オフの値とチェック状態も戻してください。

設定し直してから再実行し、invalidCountが0になったか確認します。

カスタム値の設定はGoogleのチェックボックス資料を参照してください。

既存の通知やトリガーへ組み込む場合は、状態判定を手動で確認してから行います。

公式資料

Range.isCheckedの仕様とカスタム値の例を参照してください。

関連記事・旧実装の参考資料

旧GitHubコードや外部の参考例は、現在の記事のZIPと異なる場合があります。

今回の練習は本文のセル番地・プロパティ・ZIPをそろえて実行してください。

スポンサーリンク

チェックボックスの判定についてよくある質問

チェックボックスの判定は、セルの値を見るだけでよいですか?

それだけでは足りません。

セルの値だけでなく、チェックボックスとして有効な状態かどうかを確認します。

1セルずつisCheckedを使うと、既定のTRUE/FALSEとカスタム値の両方を扱えます。

セルに普通のTRUEを入れた場合は、チェック済みになりますか?

チェックボックスの入力規則がなければ、有効なチェック扱いにしません。

チェックボックスとして設定されたセルかどうかを、確認してください。

範囲全体にisCheckedを1回だけ呼ぶと、どうなりますか?

チェック済みと未チェックが混在した状態は、nullになります。

この例は8セルを個別に読み取るので、その混在をinvalidとは扱いません。

大きな表へ広げる場合は、呼び出し回数が増えることも考慮します。

invalidCountが0でないときは、どう読みますか?

単に「全部未チェック」と判断せず、対象セルの入力規則や値を確認します。

たとえば、練習でG2のチェックボックスの入力規則を削除すると、invalidCountが増えます。

カスタムのオン/オフ値を使っている場合は?

1セルごとのisCheckedで判定します。

Range.isCheckedの仕様とカスタム値の例は、公式資料で確認してください。

結果が合わないときは、何を確認しますか?

同名の別シートを見ていないか、SPREADSHEET_IDとSHEET_NAMEを確認します。

cellsのcolumnは、1がA、4がD、8がHです。

このコードは、シートの値を書き換えますか?

いいえ。

状態を読み取り、結果をログへ出すだけです。

値の書き換えや通知送信は行いません。

停止するときは、関数を呼ばないだけです。

この記事のコードは、動作確認済みですか?

共通のGASサンプル全体では51項目をローカルの模擬環境で確認しています。

チェックボックス判定の対象と結果は本文の確認表に示します。

Googleへの認可、実シートの入力規則・標準値・カスタム値での判定は未検証です。

まず新規の練習データで試してください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

スプレッドシート・GASのおすすめ書籍

作業環境の作り方

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

この記事を書いた人

須澤 元貴のアバター 須澤 元貴 代表社員

MOTOKI合同会社 代表社員。
アニメ・映像業界とゲーム業界で、2D・UI・3D・アニメーション制作、映像編集、ツール制作に携わってきました。
現在はWordPressを中心にWebサイトの制作とカスタマイズを手がけています。
著書に『Unity デザイナーズ・バイブル』『Unityゲーム プログラミング・バイブル 2nd Generation』(ボーンデジタル)。
岡山県出身、埼玉県在住。

目次