メモ

主にプログラミング系の備忘録

'holiday(祝祭日テーブル)を使用して指定した日付が祝祭日、土日かをチェックする関数
'祝祭日、土日の場合はTrueを返す
Public Function CheckHoliday(dt As Date) As Boolean

  '時刻が含まれるデータが指定された場合は考慮して日付部分だけ(時刻を00:00:00)にする
  dt = CDate(Format(dt, "yyyy/mm/dd"))

  'holiday(祝祭日テーブル)テーブルを検索し、引数として受け取った日付が祝祭日に
  'あたるかどうか確認する
  'この部分だけAccessから変更
  If Application.WorksheetFunction.CountIf(Range("休日"), dt) = 0 Then
      '祝祭日に該当しない場合は、土曜日か日曜日かをチェック
      '土日が休みでない場合は、Caseに指定する数値を該当の曜日を表す数値に変更する。
      Select Case Weekday(dt, vbSunday) '日曜日が1、土曜日が7になる
          Case 1, 7
              CheckHoliday = True
          Case Else
              CheckHoliday = False
      End Select
   
  Else
'holidayマスタに登録されていれば当然休日
    CheckHoliday = True
  
  End If
End Function