【GAS】チェックボックスを一括選択・解除するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、チェックボックスを一括選択・解除する方法をご紹介します。

チェックボックスを一括選択・解除する

動作イメージ

  1. ボタンをクリック
  2. 「住所データ」シートを選択
  3. 「A2」~「A11」セルのセル範囲を取得
  4. 「一括選択」ボックスがクリックされたか、「一括解除」ボタンがクリックされたかを判定
  5. 「一括選択」ボタンがクリックされた場合、チェックボックスにチェックを付ける
  6. 「一括解除」ボタンがクリックされた場合、チェックボックスのチェックを解除する

使用するシート名

「住所データ」シート

 

使用するステートメント

forステートメント

for (初期化式; 条件式; 増減式) {

       繰り返す処理;

}

説明
条件式にあてはまる間、処理を繰り返すには、forステートメントを使用します。

使用するメソッド

getActiveSpreadsheetメソッド

SpreadsheetApp.getActiveSpreadsheet()

説明
現在アクティブなSpreadsheetオブジェクトを返します。

getSheetByNameメソッド

Spreadsheetオブジェクト.getSheetByName(シート名)

説明
指定したシート名のSheetオブジェクトを返します。

activateメソッド

Sheetオブジェクト.activate()

説明
指定したシートを選択状態にします。

getRangeメソッド

Sheetオブジェクト.getRange(a1Notation)

説明
セル範囲を取得します。
指定項目 必須 説明
a1Notation 〇 単一セルまたはセル範囲(複数セル)を指定します。

checkメソッド

getRangeメソッドで取得したセル範囲.check()

説明
getRangeメソッドで取得したセル範囲のチェックボックスにチェックを付けます。

uncheckメソッド

getRangeメソッドで取得したセル範囲.uncheck()

説明
getRangeメソッドで取得したセル範囲のチェックボックスのチェックを解除します。

手順

おおまかな流れ

Step.1
シートにボタンを作成

Step.2
スクリプトを作成

Step.3
ボタンにスクリプトを割り当てる

詳細

Step.1 シートにボタンを作成

参考 Step.1 シートにボタンを作成ボタンをクリックしたときにスクリプトを実行する

Step.2 スクリプトを作成

「ツール」をクリックします。

 

「スクリプトエディタ」を選択します。

 

すると、スクリプトエディタが起動します。

 

スクリプトを記述します。

 

AllCheck関数

引数:

button(一括選択ボタンクリック時:1、一括解除ボタンクリック時:0)

 

処理概要:

一括選択ボタンをクリックした場合は、すべてのチェックボックスにチェックを付ける。一括解除ボタンをクリックした場合は、すべてのチェックボックスを解除する。

1 「AllCheck」関数を作成。
3 現在アクティブなスプレッドシートオブジェクトを取得し、変数「spreadsheet」に格納。
4 「住所データ」シートオブジェクトを、変数「sheet」に格納。
6 「住所データ」シートを選択状態にする。
8 「A2」~「A11」セルのセル範囲を取得する。
10 「一括選択」ボタンがクリックされた場合、以下処理を行う。
11 すべてのチェックボックスにチェックを付ける。
13 「一括解除」ボタンがクリックされた場合、以下処理を行う。
14 すべてのチェックボックスのチェックを解除する。

CheckButton関数

処理概要:

AllCheck関数を呼び出す。

一括選択ボタンにスクリプトを割り当てる関数。

1 「CheckButton」関数を作成。
3 AllCheck関数を呼び出す。引数「1」を渡す。

UnCheckButton関数

処理概要:

AllCheck関数を呼び出す。

一括解除ボタンにスクリプトを割り当てる関数。

1 「UnCheckButton」関数を作成。
3 AllCheck関数を呼び出す。引数「0」を渡す。
Step.3 ボタンにスクリプトを割り当てる

参考 Step.3 ボタンにスクリプトを割り当てるボタンをクリックしたときにスクリプトを実行する

関連記事

チェックボックスにチェックが付いているかを判定する

【GAS】チェックボックスにチェックが付いているかを判定するには?

最後まで読んでいただき、ありがとうございました!