GASを使ってチェックボックスの入力規則を任意の数値に変更したいと思いスクリプトを作成。
完成したスクリプトを実行してみるとちゃんとチェックボックスがセットされました。
が、チェックボックスをクリックするとセルの表示が設定された数値に変わり、
その後チェックボックスのオンオフ機能が使用できなくなる現象が起こりました。
GASを使わずに作成した場合はチェックボックス機能がそのままに入力規則も変更できるため
原因を探ってはみたもののネット上の関連サイトを見てもなかなか対処法を記載しているものがなく、
もしわかる方がいればご教示をいただきたく、投稿させていただきました。
以下、作成したコードを記載します。
試しにrange1に対して入力規則変更設定を実装してみました。
GAS
1コード 2 var ss = SpreadsheetApp.getActiveSpreadsheet(); //アクティブなスプレッドシートを取得 3 var rule = SpreadsheetApp.newDataValidation() 4 .requireCheckbox(1, 0).build(); //チェックボックスに対するデータ入力規則用のビルダーを作成 5 var sheet = ss.getSheetByName(sheetName4); 6 var rows = sheet.getLastRow()-8; //シートの最終行を取得 7 var columns = sheet.getLastColumn()-14; //シートの最終列を取得 8 var range = sheet.getRange(9, 15, rows, columns); //シートの対象範囲を取得 9 var range1 = sheet.getRange(9, 20, rows, 1); //対象範囲を取得 10 var range2 = sheet.getRange(9, 23, rows, 1); //対象範囲を取得 11 var range3 = sheet.getRange(9, 26, rows, 1); //対象範囲を取得 12 var range4 = sheet.getRange(9, 42, rows, 1); //対象範囲を取得 13 var range5 = sheet.getRange(9, 46, rows, 1); //対象範囲を取得 14 var range6 = sheet.getRange(9, 49, rows, 1); //対象範囲を取得 15 var range7 = sheet.getRange(9, 51, rows, 1); //対象範囲を取得 16 var range8 = sheet.getRange(9, 21, rows, 1); //対象範囲を取得 17 var range9 = sheet.getRange(9, 22, rows, 1); //対象範囲を取得 18 var range10 = sheet.getRange(9, 24, rows, 1); //対象範囲を取得 19 var range11 = sheet.getRange(9, 25, rows ,1); //対象範囲を取得 20 21 range.clearContent() //対象範囲の値をクリア 22 .setFontFamily(setFont) //対象範囲に指定のフォントを設定 23 .setFontSize(10) //対象範囲に文字サイズを設定 24 .setVerticalAlignment('middle') //対象範囲の垂直位置(中央)の設定 25 .setHorizontalAlignment("center"); //対象範囲の水平位置(中央)の設定 26 27 28 range1.insertCheckboxes().setDataValidation(rule).setFontSize(16); //対象範囲にチェックボックスをセット、文字サイズも合わせて補正 29 range2.insertCheckboxes().setFontSize(16); //対象範囲にチェックボックスをセット、文字サイズも合わせて補正 30 range3.insertCheckboxes().setFontSize(16); //対象範囲にチェックボックスをセット、文字サイズも合わせて補正 31 range4.insertCheckboxes().setFontSize(16); //対象範囲にチェックボックスをセット、文字サイズも合わせて補正 32 range5.insertCheckboxes().setFontSize(16); //対象範囲にチェックボックスをセット、文字サイズも合わせて補正 33 range6.insertCheckboxes().setFontSize(16); //対象範囲にチェックボックスをセット、文字サイズも合わせて補正 34 range7.insertCheckboxes().setFontSize(16); //対象範囲にチェックボックスをセット、文字サイズも合わせて補正 35 range8.setHorizontalAlignment("left") 36 .setWrapStrategy(SpreadsheetApp.WrapStrategy.WRAP); //対象範囲の水平位置(左)の設定、セルテキストの折り返しを設定 37 range9.setHorizontalAlignment("left"); //対象範囲の水平位置(左)の設定 38 range10.setHorizontalAlignment("left") //対象範囲の水平位置(左)の設定、セルテキストの折り返しを設定 39 .setWrapStrategy(SpreadsheetApp.WrapStrategy.WRAP); 40 range11.setHorizontalAlignment("left") //対象範囲の水平位置(左)の設定、セルテキストの折り返しを設定 41 .setWrapStrategy(SpreadsheetApp.WrapStrategy.WRAP);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/03 04:31
2021/04/03 07:58