今GASでスプレッドシートでチェックボックスが挿入されている中の指定の列のチェックボックスがレ点が入ったときにその行を非表示にするというものをしたいと思っているのですが、いろいろなものを検索したのですが、自分のしたいと思っているものの参考がなかなか見つからず、この内容を実現させるにはどういった条件指定をするといいのでしょうか?
Javascript自体あまり触ったことがなく、参考のものを多少変更するぐらいのことができるのが自分の現状です。
下のコードは自分のしたいことに近いなと思ったものです。
var
1var CHECKBOX_COUNT = 3; // チェックボックスの数 2var HIDDEN_FIELD_START = 6; // 何行目から消すのか 3var HIDDEN_FIELD_END = 30; // 何行目まで消すのか 4 5// スプレッドシートの値が変更された時に発火 6function changeEvent() { 7 var sheet = SpreadsheetApp.getActiveSheet(); 8 var activeCell = sheet.getActiveCell(); 9 if (activeCell.getColumn() == CHECKBOX_COLUMN){ // チェックボックス列の値が変更された場合 10 checkBoxEvent(sheet); 11 } 12} 13 14// チェックボックスのチェック状態に合わせて表示・非表示を切り替える 15function checkBoxEvent(sheet) { 16 var rows = sheet.getRange(1, CHECKBOX_COLUMN, CHECKBOX_COUNT, 1).getValues(); 17 hiddenFields(sheet); 18 for (var i = 0; i < rows.length; i++) { 19 if (rows[i][0] === true) { 20 var showRows = sheet.getRange(i + 1, CHECKBOX_COLUMN + 1).getValue().split(','); 21 for (var j = 0; j < showRows.length; j++) { 22 sheet.showRows(showRows[j]); // チェックボックスの1個右のセルの値に記載されている行数を表示する 23 } 24 } 25 } 26} 27 28// 非表示行エリアを全非表示にする 29function hiddenFields(sheet) { 30 sheet.hideRows(HIDDEN_FIELD_START, HIDDEN_FIELD_END - HIDDEN_FIELD_START + 1); 31} 32コード
あなたの回答
tips
プレビュー