VBAでの曜日判定に関するメモ
今日の公立図書館はWebで予約もできるし、予約した本が届くとメールで通知してくれるのでとても便利だが、取り置きの期限日を忘れてしまうことがあったので、以前、Outlook VBAで自動的にタスク登録する簡単なスクリプトを書いた。
仕事場の近くの図書館で予約した場合、休日に取り置き期限に気付き、わざわざ休日に出向くか、泣く泣くあきらめるかしていたが、先週またやってしまったので、スクリプトを少し改修した。
intWeekday = Weekday(taskItem.DueDate) Select Case intWeekday Case vbMonday taskItem.DueDate = taskItem.DueDate - 3 Case vbSunday taskItem.DueDate = taskItem.DueDate - 2 Case vbSaturday taskItem.DueDate = taskItem.DueDate - 1 End Select
この図書館は月曜日が休館日なので除外している。祝日だったら、どうする?検索したら、祝日判定用マクロなるものがあることがわかった。せっかくなので組み込んでみた。
HOLIDAY_CHECK: intWeekday = Weekday(taskItem.DueDate) Select Case intWeekday Case vbMonday taskItem.DueDate = taskItem.DueDate - 3 Case vbSunday taskItem.DueDate = taskItem.DueDate - 2 Case vbSaturday taskItem.DueDate = taskItem.DueDate - 1 End Select If (ktHolidayName(taskItem.DueDate) <> "") Then taskItem.DueDate = taskItem.DueDate - 1 GoTo HOLIDAY_CHECK End If
いい感じになったので今日は終了!