回答編集履歴

6

追記

2021/08/19 15:18

投稿

退会済みユーザー
test CHANGED
@@ -155,3 +155,37 @@
155
155
  }
156
156
 
157
157
  ```
158
+
159
+
160
+
161
+ -----
162
+
163
+
164
+
165
+ 初期化不要のバージョンも書いてみました。表示がワンテンポ速くなると思います。
166
+
167
+ ```js
168
+
169
+ function checkBoxEvent(sheet) {
170
+
171
+ const checked = sheet.getRange(1, CHECKBOX_COLUMN - 1, CHECKBOX_COUNT, 2).getValues().filter(e => e[1]).map(e => e[0]);
172
+
173
+ const dataColumns = sheet.getRange(LABEL_ROW, HIDDEN_FIELD_START, 1, HIDDEN_FIELD_END - HIDDEN_FIELD_START + 1).getValues()[0];
174
+
175
+ dataColumns.forEach((e, idx) => {
176
+
177
+ if (checked.indexOf(e) > -1){
178
+
179
+ sheet.showColumns(HIDDEN_FIELD_START + idx, 1);
180
+
181
+ } else {
182
+
183
+ sheet.hideColumns(HIDDEN_FIELD_START + idx, 1);
184
+
185
+ }
186
+
187
+ });
188
+
189
+ }
190
+
191
+ ```

5

2021/08/19 15:18

投稿

退会済みユーザー
test CHANGED
@@ -155,7 +155,3 @@
155
155
  }
156
156
 
157
157
  ```
158
-
159
- (質問文記載のエラーの原因は、sheetがnullの状態でhiddenFields関数が実行されたか、
160
-
161
- もしくはsheetにWorksheetオブジェクト以外のものが入っていたからではないかと推定されます)

4

2021/08/19 13:24

投稿

退会済みユーザー
test CHANGED
@@ -142,7 +142,7 @@
142
142
 
143
143
  初期化部分は、hideRows()の代わりにhideColumns()を使用します。
144
144
 
145
- hideColumnsの引数は、元記事のコードから変える必要はありません。
145
+ hideColumnsの引数は、元記事のコードから変える必要はありません。
146
146
 
147
147
  ```
148
148
 

3

2021/08/19 13:20

投稿

退会済みユーザー
test CHANGED
@@ -140,7 +140,9 @@
140
140
 
141
141
   
142
142
 
143
+ 初期化部分は、hideRows()の代わりにhideColumns()を使用します。
144
+
143
- 初期化部分の引数は、元記事のコードから変える必要はありません。
145
+ hideColumnsの引数は、元記事のコードから変える必要はありません。
144
146
 
145
147
  ```
146
148
 
@@ -153,3 +155,7 @@
153
155
  }
154
156
 
155
157
  ```
158
+
159
+ (質問文記載のエラーの原因は、sheetがnullの状態でhiddenFields関数が実行されたか、
160
+
161
+ もしくはsheetにWorksheetオブジェクト以外のものが入っていたからではないかと推定されます)

2

2021/08/19 13:20

投稿

退会済みユーザー
test CHANGED
@@ -140,7 +140,7 @@
140
140
 
141
141
   
142
142
 
143
- 初期化部分の引数は、元のコードから変える必要はありません。
143
+ 初期化部分の引数は、元記事のコードから変える必要はありません。
144
144
 
145
145
  ```
146
146
 

1

修正

2021/08/19 13:06

投稿

退会済みユーザー
test CHANGED
@@ -118,13 +118,15 @@
118
118
 
119
119
 
120
120
 
121
- そして、下のコードの部分で、5行目の表示対象データを取得しています。
121
+ そして、下のコードの部分で、5行目のラベルデータを取得しています。
122
122
 
123
- ラベルデータは1行だけほしので、最後に[0]としています。
123
+ ラベルデータは1行だけでよため、最後に[0]としています。
124
124
 
125
125
  (もし[0]がないと、dataColumnsが `[[グループA、グループB...]]` のような2次元配列になってしまい
126
126
 
127
- 以降のコードを手直しする必要が出てしまうため。
127
+ 以降のコードを手直しする必要が出てしまいます)
128
+
129
+ 取得する行と列、getRange関数の引数の関係に注意しましょう。
128
130
 
129
131
 
130
132