実現したいこと
毎週制作する以下のスプレッドシートをGoogle Apps Scriptを用いて自動化を目指しています。
月末の区切りに太罫線を引きたいです。
30日と31日を区別すると複雑になりそうなので、1日をまず探し、そのセルの上に太罫線を引きたいです。
発生している問題・分からないこと
// 1日という条件を満たすセルを複数取得する
const targetDayIndex = ◯◯◯◯◯◯◯◯
ソースコードのうち、ここが解決できればできそうです。
配列・正規表現に関してはかなり知識が浅く、正直すべては理解できていません…
該当のソースコード
1function OnedayBoder() { 2 const spreadsheet = SpreadsheetApp.getActiveSheet(); 3 const lastCol = spreadsheet.getLastColumn(); 4 5 // B列(日付)の値を取得 6 const values = spreadsheet.getRange('B:B').getValues().flatMap(([val]) => val ? val : []); 7 8 // 1日という条件を満たすセルを複数取得する 9 const targetDayIndex = values.findLastIndex(val => val >= 0.5); 10 11 // インデックス番号が0以上の場合(つまり、配列の中に値が存在する場合) 12 if (targetDayIndex >= 0) { 13 // インデックス番号+1する(=スプレッドシートの行番号) 14 const targetDayRow = targetDayIndex + 1; 15 // 1日という条件を満たすセルの上に、太罫線を引く(上,左,下,右,垂直,水平,色,スタイル) false:消す true:作成 null:何もしない 16 spreadsheet.getRange(targetDayRow, 1, 1, lastCol).setBorder(null, null, true, null, null, null, '#FF0000', SpreadsheetApp.BorderStyle.DOUBLE) 17 } // 1日という条件を満たすセルが存在しない場合は何もしない 18}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
https://teratail.com/questions/43dnowpfiuzg3k
上記質問を応用することができそうだと思いましたが、上記と違い1日が表示している60日のうち複数あり、それぞれの1日の上に引きたいです。
補足
初質問のため、情報が足りない可能性があります。
その場合、補足にて回答します。
回答1件
あなたの回答
tips
プレビュー