見出し画像

スプレッドシートで作成したスケジュール表を見やすくするTips(その2)

ホリゾンタルのスケジュール表をスプレッドシートで運用する際、見やすくするTipsをまとめます。
(よく使用するのですが覚えられないので主に自分用のメモです)

【見やすさをあげるTips】
1_土日祝日に色を付ける
2_祝日をGASで取得する
3_GASで定期的に行を非表示にする

前回は「1_土日祝日に色を付ける」の記事を書きました。

今回は「2_祝日をGASで取得する」のメモです。

2_祝日をGASで取得する

前回の記事で、シート[祝日]を参照する「条件付き書式」を構築しました。
シートに祝日を手作業で入力するのは手間がかかりますが、幸いにもGoogleさんが日本の祝日データを公開しているので、Google Apps Scriptを用いシートに転記します。

予め以下のようなシート[祝日]を用意します。

画像1

スクリプトはこちら。

function getHoliday() {

 const startDate = new Date('2021/01/01');
 const endDate   = new Date('2022/12/31');

 const cal      = CalendarApp.getCalendarById("ja.japanese#holiday@group.v.calendar.google.com");
 const holidays = cal.getEvents(startDate, endDate);
 const values   = [];

 for (let i = 0; i < holidays.length; i++) {
   values[i] = [holidays[i].getStartTime(), holidays[i].getTitle()];
 }

 const ss    = SpreadsheetApp.getActiveSpreadsheet();
 const sheet = ss.getSheetByName("祝日");

 sheet.getRange(2, 1, values.length, values[0].length).setValues(values);

}

実行後は以下のように取得できます。

画像2

スクリプトの冒頭で取得したい範囲(期間)を設定していますが、
(開始日=2021/01/01、終了日=2022/12/31)
そこは適宜手修正で変更する仕様としています。
↓↓↓

 const startDate = new Date('2021/01/01');
 const endDate   = new Date('2022/12/31');

次回の記事で
 3_GASで定期的に行を非表示にする
を記します。

※続きの記事を書きました。


この記事が気に入ったらサポートをしてみませんか?