GASでスプレッドシートのチェックボックスがチェック済みか確認するるには「isChecked()
」を利用する。
isChecked()
範囲内のすべてのセルのチェックボックス状態が 'checked' であるかどうかを返します。一部のセルがオンになっていて、他のセルはオフになっている場合、または一部のセルにチェックボックス データ検証がない場合、null を返します。
https://developers.google.com/apps-script/reference/spreadsheet/range#ischecked
スプレッドシートのチェックボックスがチェック済みか確認するるGAS実行の様子
isChecked()メソッドを利用して、スプレッドシートのチェックボックスがチェック済みか確認するるGASを実行してみました。
isChecked()を実行することで
チェックボックスを設置したセルへ
- yesを記入することでチェックボックスに✓が入る
- といった仕様にすることができます。
チェックボックスに✓が入っていたら、yesの値が取得・確認できるという流れですね。
スプレッドシートにチェックボックスを挿入する場合は、以下記事を御覧ください。
参照記事:【GAS】スプレッドシートにチェックボックスを挿入する
スプレッドシートのチェックボックスがチェック済みか確認するるGAS
function ischeck(){
//SpreadsheetAppを起動
let ss = SpreadsheetApp.getActiveSpreadsheet();
//0番目のシートを取得
let sht = ss.getSheets()[0];
//シートをクリア
sht.clear();
//10行コンテンツを挿入
for(var i=1;i<=10;i++){
const val = [
[i,"Spreadsheetblue"]
];
sht.getRange(i,1,1,2).setValues(val);
}
//チェックボックス作成の有無を確認
const yesno = Browser.msgBox("C列に✓ボックスを設け、奇数行に値となるyesを入力しますか?",Browser.Buttons.YES_NO);
//YESだったら
if(yesno=="yes"){
//CheckBoxをコンテンツの最右端に設置して、yes・noの値を設置
const lastrw = sht.getLastRow();
const lastcl = sht.getLastColumn();
const first = sht.getRange(1,lastcl+1).getA1Notation();
const end = sht.getRange(lastrw,lastcl+1).getA1Notation();
const rng01 = sht.getRange(first+":"+end);
rng01.insertCheckboxes('yes','no'); //yesなら✓が入る・noならnull
//奇数行のみに値yesを設置
for(i=1;i<=10;i=i+2){
const cell1 = sht.getRange(i,lastcl+1);
const cell2 = sht.getRange(i,lastcl+2);
cell1.setValue('yes');
//■isCheckedでyesの値があるセルのチェックボックスに✓を付与
cell1.isChecked();
cell2.setValue("←値yesを設置しました");
}
//✓付与した旨を掲載
Browser.msgBox("C列の奇数行セルに値'yes'を入れました");
}else{
//作業中止の旨を掲載
Browser.megBox("作業を中止しました");
}
}
isChecked()の戻り値
Boolean - true: 範囲内のすべてのセルがオンになっている場合は true、範囲内のすべてのセルがチェックされていない場合は false、いずれかのセルがオフにされているかチェックボックス データの検証がない場合は null が設定されます。
スプレッドシートのチェックボックスがチェック済みか確認するるまとめ
GAS×スプレッドシートのチェックボックスがチェック済みか確認するるならisChecked()
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシートにチェックボックスを挿入する