【GAS】スプレッドシートのチェックボックス機能まとめ【サンプルソース付】

快速ワーク
スポンサーリンク

GAS開発者向けにスプレッドシートのチェックボックス機能をすべてまとめました。

データの選択判断させたい場合、チェックボックスはわかりやすく超有効なインターフェースですね。

GASで動的にデータに併せてチェックボックスON・OFFをコントロールできれば、いろいろ融通が利くはずなので、ぜひ活用してみてください。

チェックボックスに関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


スポンサーリンク

Google Apps Script スプレッドシート 基礎 リファレンス

当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。

若干、文言がおかしい可能性がありますが、あらかじめご了承ください。

 

GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。

【GAS】スプレッドシート基本メソッドまとめ一覧【初心者入門】
GAS開発者向けにスプレッドシートの基本的なメソッドを一覧にまとめました。各機能ごとのクラス、メソッドごとのサンプルソース付ページへリンクする一覧です。初心者にとって、スプレッドシートの基本的な操作・機能単位のメソッドを知...

 

まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。

【GAS】Googleスプレッドシートでマクロの使い方入門【動画付】
Googleの「Google Apps Script」通称GAS。GoogleマップやGメールなど、いろんなGoogle関連のサービスと自由に連携できたり、独自のWebアプリを開発することもできる、いろんな可能性を秘めたワクワクの...

 

GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。

基本的な仕様やよく使われる機能の設定方法がまとまっています。

※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。


セル範囲クラス[Range]のチェックボックス

セル範囲のチェックボックスメソッドです。

チェックボックス挿入1[insertCheckboxes()]

insertCheckboxes()
範囲内の各セルにチェックボックスを挿入します。チェックマークが付いている場合はtrue、チェックマークが付いていない場合はfalseに設定されています。範囲内のすべてのセルの値をfalseに設定します。

function insertCheckboxes1Sample() {
  var range = SpreadsheetApp.getActive().getRange('A1:B10');

  // チェックボックスが「true」、チェックマークが付いていない場合は「false」で設定されたA1:B10の範囲の各セルに
  // チェックボックスを挿入します。また、A1:B10の範囲の各セルの値を 'false'に設定します。
  range.insertCheckboxes();
}

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | insertCheckboxes()

チェックボックス挿入2[insertCheckboxes(チェック値)]

insertCheckboxes(checkedValue)
チェックボックスのカスタム値とチェックボックスの空の文字列で設定された範囲内の各セルにチェックボックスを挿入します。範囲内の各セルの値を空の文字列に設定します。

function insertCheckboxes2Sample() {
  var range = SpreadsheetApp.getActive().getRange('A1:B10');

  // チェックマークが 'yes'、チェックマークが付いていない空文字列で設定されたA1:B10の範囲の各セルに
  // チェックボックスを挿入します。また、A1:B10の範囲の各セルの値を空の文字列に設定します。
  range.insertCheckboxes('yes');
}
Parameters
名前タイプ説明
checkedValueObjectチェックボックスデータ検証のチェック値。

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | insertCheckboxes(checkedValue)

チェックボックス挿入3[insertCheckboxes(チェック値, チェックされていない値)]

insertCheckboxes(checkedValue, uncheckedValue)
チェック状態と未チェック状態のカスタム値で設定された範囲内の各セルにチェックボックスを挿入します。範囲内の各セルの値をカスタムの未チェックの値に設定します。

function insertCheckboxes3Sample() {
  var range = SpreadsheetApp.getActive().getRange('A1:B10');

  // チェックボックスが 'yes'、チェックボックスが 'no'に設定されているA1:B10の範囲の各セルに
  // チェックボックスを挿入します。また、A1:B10の範囲内の各セルの値を 'no'に設定します。
  range.insertCheckboxes('yes', 'no');
}
Parameters
名前タイプ説明
checkedValueObjectチェックボックスデータ検証のチェック値。
uncheckedValueObjectチェックボックスデータ検証のチェックされていない値。

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | insertCheckboxes(checkedValue, uncheckedValue)

チェックボックス削除[removeCheckboxes()]

removeCheckboxes()
範囲からすべてのチェックボックスを削除します。各セルのデータ検証をクリアし、セルにチェック済みまたは未チェックの値が含まれている場合はさらにその値をクリアします。

function removeCheckboxesSample() {
  var range = SpreadsheetApp.getActive().getRange('A1:B10');

  // チェックボックスを挿入し、各セルの値をA1:B10の範囲の 'no'に設定します。
  range.insertCheckboxes('yes', 'no');

  var range1 = SpreadsheetApp.getActive().getRange('A1');
  range1.setValue('yes');
  // セルA1のチェックボックスデータ検証を削除し、その値をクリアします。
  range1.removeCheckboxes();

  var range2 = SpreadsheetApp.getActive().getRange('A2');
  range2.setValue('random');
  // セルA2のチェックボックスデータの検証を削除しますが、値をクリアしません。
  range2.removeCheckboxes();
}

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | removeCheckboxes()

チェックボックスオン[check()]

check()
範囲内のチェックボックスの状態を "checked"に変更します。現在設定されているチェック値またはチェックされていない値を含まない範囲のセルを無視します。

function checkSample() {
  // 現在A1:B10の範囲で設定されたチェック済み
  // または未チェックの値を含むセルの状態を 'checked'に変更します。
  var range = SpreadsheetApp.getActive().getRange('A1:B10');
  range.check();
}

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | check()

チェックボックスオフ[uncheck()]

uncheck()
範囲内のチェックボックスの状態を「未チェック」に変更します。現在設定されているチェック値またはチェックされていない値を含まない範囲のセルを無視します。

function uncheckSample() {
  // 現在A1:B10の範囲で設定されたチェック済み
  // または未チェックの値を含むセルの状態を 'unchecked'に変更します。
  var range = SpreadsheetApp.getActive().getRange('A1:B10');
  range.uncheck();
}

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | uncheck()

チェックボックス状態確認[isChecked()]

isChecked()
範囲内のすべてのセルのチェックボックスの状態が 'checked'になっているかどうかを返します。一部のセルがチェックされ、残りがチェックされていない場合、または一部のセルにチェックボックスデータの検証がない場合はnullを返します。

function isCheckedSample() {
  var range = SpreadsheetApp.getActive().getRange('A1:A3');

  // チェックボックスを挿入し、各セルの値をA1:A3の範囲で 'no'に設定します。
  range.insertCheckboxes('yes', 'no');

  var range1 = SpreadsheetApp.getActive().getRange('A1');
  range1.setValue('yes');
  // isRange1Checkedの値にチェックされた値が含まれているため、trueに設定します。
  var isRange1Checked = range1.isChecked();

  var range2 = SpreadsheetApp.getActive().getRange('A2');
  range2.setValue('no');
  // isRange2Checkedの値に未チェックの値が含まれているため、falseに設定します。
  var isRange2Checked = range2.isChecked();

  var range3 = SpreadsheetApp.getActive().getRange('A3');
  range3.setValue('random');
  // isRange3Checkedの値に無効なチェックボックス値が含まれているため、nullに設定します。
  var isRange3Checked = range3.isChecked();
}

Return
Boolean - 範囲内のすべてのセルがチェックされている場合はtrue、範囲内のすべてのセルがチェックされていない場合はfalse、いずれかのセルがチェックされていない、またはチェックボックスデータ検証がない場合はnullです。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | isChecked()




セル範囲リストクラス[RangeList]のチェックボックス

セル範囲リストのチェックボックスメソッドです。

チェックボックス挿入1[insertCheckboxes()]

insertCheckboxes()
範囲内の各セルにチェックボックスを挿入します。チェックマークが付いている場合はtrue、チェックマークが付いていない場合はfalseに設定されています。範囲内のすべてのセルの値をfalseに設定します。

function insertCheckboxes1Sample() {
  var rangeList = SpreadsheetApp.getActive().getRangeList(['D4', 'E6']);

  // チェックマークが付いている場合は 'true'、未チェックの場合は 'false'で構成されている
  // 範囲D4とE6の各セルにチェックボックスを挿入します。
  // また、範囲D4とE6の各セルの値を 'false'に設定します。
  rangeList.insertCheckboxes();
}

Return
RangeList - 連鎖用のセル範囲リスト。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | insertCheckboxes()

チェックボックス挿入2[insertCheckboxes(チェック値)]

insertCheckboxes(checkedValue)
チェックボックスのカスタム値とチェックボックスの空の文字列で設定された範囲内の各セルにチェックボックスを挿入します。範囲内の各セルの値を空の文字列に設定します。

function insertCheckboxes2Sample() {
  var rangeList = SpreadsheetApp.getActive().getRangeList(['D4', 'E6']);

  // チェックマークが 'yes'、チェックマークが付いていない空文字列で設定された範囲D4とE6の各セルに
  // チェックボックスを挿入します。また、範囲D4とE6の各セルの値を空の文字列に設定します。
  rangeList.insertCheckboxes('yes');
}
Parameters
名前タイプ説明
checkedValueObjectチェックボックスデータ検証のチェック値。

Return
RangeList - 連鎖用のセル範囲リスト。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | insertCheckboxes(checkedValue)

チェックボックス挿入3[insertCheckboxes(チェック値, チェックされていない値)]

insertCheckboxes(checkedValue, uncheckedValue)
チェック状態と未チェック状態のカスタム値で設定された範囲内の各セルにチェックボックスを挿入します。範囲内の各セルの値をカスタムの未チェックの値に設定します。

function insertCheckboxes3Sample() {
  var rangeList = SpreadsheetApp.getActive().getRangeList(['D4', 'E6']);

  // チェックマークが 'yes'、チェックマークが付いていない 'no'で設定された範囲D4とE6の各セルに
  // チェックボックスを挿入します。また、範囲D4とE6の各セルの値を 'no'に設定します。
  rangeList.insertCheckboxes('yes', 'no');
}
Parameters
名前タイプ説明
checkedValueObjectチェックボックスデータ検証のチェック値。
uncheckedValueObjectチェックボックスデータ検証のチェックされていない値。

Return
RangeList - 連鎖用のセル範囲リスト。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | insertCheckboxes(checkedValue, uncheckedValue)

チェックボックス削除[removeCheckboxes()]

removeCheckboxes()
範囲からすべてのチェックボックスを削除します。各セルのデータ検証をクリアし、セルにチェック済みまたは未チェックの値が含まれている場合はさらにその値をクリアします。

function removeCheckboxesSample() {
  var range = SpreadsheetApp.getActive().getRange('A1:B10');

  // チェックボックスを挿入し、各セルの値をA1:B10の範囲の 'no'に設定します。
  range.insertCheckboxes('yes', 'no');

  var rangeList1 = SpreadsheetApp.getActive().getRangeList(['A1', 'A3']);
  rangeList1.setValue('yes');
  // セルA1とA3のチェックボックスデータ検証を削除し、それらの値をクリアします。
  rangeList1.removeCheckboxes();

  var rangeList2 = SpreadsheetApp.getActive().getRangeList(['A5', 'A7']);
  rangeList2.setValue('random');
  // セルA5とA7のチェックボックスデータの検証を削除しますが、それらの値をクリアしません。
  rangeList2.removeCheckboxes();
}

Return
RangeList - 連鎖用のセル範囲リスト。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | removeCheckboxes()

チェックボックスオン[check()]

check()
範囲内のチェックボックスの状態を "checked"に変更します。現在設定されているチェック値またはチェックされていない値を含まない範囲のセルを無視します。

function checkSample() {
  // 現在範囲D4とE6に設定されているチェック済み
  // または未チェックの値を含むセルの状態を 'checked'に変更します。
  var rangeList = SpreadsheetApp.getActive().getRangeList(['D4', 'E6']);
  rangeList.check();
}

Return
RangeList - 連鎖用のセル範囲リスト。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | check()

チェックボックスオフ[uncheck()]

uncheck()
範囲内のチェックボックスの状態を「未チェック」に変更します。現在設定されているチェック値またはチェックされていない値を含まない範囲のセルを無視します。

function uncheckSample() {
  // 現在範囲D4とE6に設定されているチェック済み
  // または未チェックの値を含むセルの状態を'unchecked'に変更します。
  var rangeList = SpreadsheetApp.getActive().getRangeList(['D4', 'E6']);
  rangeList.uncheck();
}

Return
RangeList - 連鎖用のセル範囲リスト。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class RangeList | Methods | uncheck()


最後に

GASチェックボックス機能のまとめをご紹介させていただきました。

必要に応じて、有益な情報でさらに更新していきたいと思います。

プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。

実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。

実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。

自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。

GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。

Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

Googleスプレッドシートの使い方や機能がわかるショートカットキー全まとめ一覧【初心者こそ必見】
表計算ソフトとして、まだまだExcelのシェア率は高いですが、GoogleスプレッドシートにはExcelにはない超強力な関数があったり、Excelとは違って常に最新版を無料で使用できます。なにより、インターネットを使ったオンライン...

ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。




コメント

//▼2023/04/08追加 //https://lovagelab.com/posts/3406/ //▲2023/04/08追加