GASで行を非表示にする(現在表示分から○行)

実現したいこと

Googleスプレッドシートにて、複数行の非表示を自動で行えるようにしたい。

前提

販売店のシフト表をスプレッドシートで作成しています。
C列~I列で(日)~(土)を表現しています。

10/1(日) 10/2(月) 10/3(火) 10/4(水) 10/5(木)
昼1 ○○さん ○○さん ○○さん ○○さん ○○さん
昼2 ○○さん ○○さん ○○さん ○○さん ○○さん
○○さん ○○さん ○○さん ○○さん ○○さん
10/8(日) 10/9(月) 10/10(火) 10/11(水) 10/12(木)
昼1 ○○さん ○○さん ○○さん ○○さん ○○さん
昼2 ○○さん ○○さん ○○さん ○○さん ○○さん
○○さん ○○さん ○○さん ○○さん ○○さん

こんなイメージです。

数か月分を一気に作成している(行が100以上ある)のですが、週に1度、過去分(上記の例で言うと、10/8(日)以降に1~4行目)を非表示にしており、この作業を自動化したいなと考えています。

発生している問題

既に過去分が複数行 非表示になっている場合、下記コードでは「“非表示分も含めて数えた”2行目から3行」という意図になってしまうようで、実際に非表示にしたい行が非表示になってくれません。

やはりisRowHiddenByUserなどを使って判定させる仕組みを入れないといけないのでしょうか。

「非表示分をスキップさせて数える」というようなことが出来れば、
常に「sheet.hideRows(2, 3)」と(引数を)固定しておけるのになぁ、と思っています。

該当のソースコード

gs

1function autoHideRows() { 2 // スプレッドシートの読み込み 3 const spreadsheet = SpreadsheetApp.getActiveSpreadsheet() 4 // シートの選択 5 const sheet = spreadsheet.getSheetByName('シフト') 6 7 8 // 1行目から4行を隠す 9 sheet.hideRows(1, 4) 10} 11

最後に

拙い文章ですが、よろしくお願いいたします。
追加で必要な情報があればご指摘ください。

コメントを投稿

0 コメント