時間の範囲判定をする→開始(FROM)~終了(TO)の日付と時間、比較対象の日付と時間をセットして範囲に入っているかどうかを判定する

<分類:判定>
<使用例:対象範囲(開始)の日付と時間、対象日付と時間、対象範囲(終了)の日付と時間(13:00:00)をセットして、範囲内の場合は内、範囲外の場合は外と判定する>
<具体例:対象範囲(開始)の日付(2019/8/16)時間(02:00:00)≦対象の日付(2019/8/16)時間(01:59:59)≦対象範囲(終了)の日付(2019/8/16)時間(13:00:00)は成立しないので範囲外と判定>
<具体例:対象範囲(開始)の日付(2019/8/16)時間(02:00:00)≦対象の日付(2019/8/16)時間(02:00:00)≦対象範囲(終了)の日付(2019/8/16)時間(13:00:00)が成立するので範囲内と判定>
<具体例:対象範囲(開始)の日付(2019/8/16)時間(02:00:00)≦対象の日付(2019/8/16)時間(13:00:00)≦対象範囲(終了)の日付(2019/8/16)時間(13:00:00)が成立するので範囲内と判定>
<具体例:対象範囲(開始)の日付(2019/8/16)時間(02:00:00)≦対象の日付(2019/8/16)時間(13:00:01)≦対象範囲(終了)の日付(2019/8/16)時間(13:00:00)は成立しないので範囲外と判定>
<プログラム例>

Sub 使用例()
   Dim fdate As Date
   Dim ftime As Date
   Dim gdate As Date
   Dim gtime As Date
   Dim tdate As Date
   Dim ttime As Date
   Dim rtn1 As String
   
   fdate = "2019/8/16"
   ftime = "02:00:00"
   
   gdate = "2019/8/16"
   gtime = "01:59:59"
   
   tdate = "2019/8/16"
   ttime = "13:00:00"
   
   rtn1 = 時間範囲判定(fdate, ftime, gdate, gtime, tdate, ttime)
      
   MsgBox (gdate & " (" & gtime & ") は、" & Chr(13) & fdate & " (" & ftime & ") ~ " & tdate & " (" & ttime & ") の範囲" & rtn1 & "です")

   fdate = "2019/8/16"
   ftime = "02:00:00"
   
   gdate = "2019/8/16"
   gtime = "02:00:00"
   
   tdate = "2019/8/16"
   ttime = "13:00:00"
   
   rtn1 = 時間範囲判定(fdate, ftime, gdate, gtime, tdate, ttime)
      
   MsgBox (gdate & " (" & gtime & ") は、" & Chr(13) & fdate & " (" & ftime & ") ~ " & tdate & " (" & ttime & ") の範囲" & rtn1 & "です")

   fdate = "2019/8/16"
   ftime = "02:00:00"
   
   gdate = "2019/8/16"
   gtime = "13:00:00"
   
   tdate = "2019/8/16"
   ttime = "13:00:00"
   
   rtn1 = 時間範囲判定(fdate, ftime, gdate, gtime, tdate, ttime)
      
   MsgBox (gdate & " (" & gtime & ") は、" & Chr(13) & fdate & " (" & ftime & ") ~ " & tdate & " (" & ttime & ") の範囲" & rtn1 & "です")

   fdate = "2019/8/16"
   ftime = "02:00:00"
   
   gdate = "2019/8/16"
   gtime = "13:00:01"
   
   tdate = "2019/8/16"
   ttime = "13:00:00"
   
   rtn1 = 時間範囲判定(fdate, ftime, gdate, gtime, tdate, ttime)
      
   MsgBox (gdate & " (" & gtime & ") は、" & Chr(13) & fdate & " (" & ftime & ") ~ " & tdate & " (" & ttime & ") の範囲" & rtn1 & "です")

End Sub

Function 時間範囲判定(fdate As Date, ftime As Date, gdate As Date, gtime As Date, tdate As Date, ttime As Date)

    Dim fr As String
    Dim tr As String
    Dim ftr As String
    
    If DateDiff("d", fdate, gdate) > 0 Then
       fr = "大"
    End If

    If DateDiff("d", fdate, gdate) = 0 Then
       
       If DateDiff("s", ftime, gtime) >= 0 Then
          fr = "大"
       Else
          fr = "小"
       End If
    End If

    If DateDiff("d", fdate, gdate) < 0 Then
       fr = "小"
    End If
    
    If DateDiff("d", gdate, tdate) > 0 Then
       tr = "大"
    End If

    If DateDiff("d", gdate, tdate) = 0 Then
       
       If DateDiff("s", gtime, ttime) >= 0 Then
          tr = "大"
       Else
          tr = "小"
       End If
    End If

    If DateDiff("d", gdate, tdate) < 0 Then
       tr = "小"
    End If
    
    ftr = fr & tr
    
    Select Case ftr
           Case "大大"
               時間範囲判定 = "内"
           Case Else
               時間範囲判定 = "外"
    End Select
    
End Function

時間がジャストかどうかを調べる(30分もジャストで判定するバージョン)

<分類:判定>
<使用例:時間が何時ジャストであるか判定する>
<00:00:00 → 判定結果:ジャスト>
<00:00:01 → 判定結果:ジャストではない>
<23:00:00 → 判定結果:ジャスト>
<23:30:00 → 判定結果:ジャスト>
<23:00:30 → 判定結果:ジャストではない>
<プログラム例>

Sub 使用例()
    Dim t As String
    Dim s As String
    
    t = "00:00:00"
    s = 時間ジャスト調査00分と30(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

    t = "00:00:01"
    s = 時間ジャスト調査00分と30(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

    t = "23:00:00"
    s = 時間ジャスト調査00分と30(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

    t = "23:30:00"
    s = 時間ジャスト調査00分と30(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

    t = "23:00:30"
    s = 時間ジャスト調査00分と30(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

End Sub

Function 時間ジャスト調査00分と30(p1 As String)
    Dim s As String
    
    s = 共通_cov_time_t9(p1)
    Select Case Mid(s, 4, 4)
           Case "0000"
               時間ジャスト調査00分と30= "*"
           Case "3000"
               時間ジャスト調査00分と30= "*"
           Case Else
               時間ジャスト調査00分と30= ""
    End Select

End Function

Function 共通_cov_time_t9(p1 As String) As String
    共通_cov_time_t9 = "T" & CStr((Format(p1, "hhnnss")))
End Function

時間がジャストかどうかを調べる

<分類:判定>
<使用例:時間が何時ジャストであるか判定する>
<00:00:00 → 判定結果:ジャスト>
<00:00:01 → 判定結果:ジャストではない>
<23:00:00 → 判定結果:ジャスト>
<23:30:00 → 判定結果:ジャストではない>
<23:00:30 → 判定結果:ジャストではない>
<プログラム例>

Sub 使用例()
    Dim t As String
    Dim s As String
    
    t = "00:00:00"
    s = 時間ジャスト調査(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

    t = "00:00:01"
    s = 時間ジャスト調査(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

    t = "23:00:00"
    s = 時間ジャスト調査(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

    t = "23:30:00"
    s = 時間ジャスト調査(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

    t = "23:00:30"
    s = 時間ジャスト調査(t)

    If s = "*" Then
       MsgBox (t & "はジャストです")
    Else
       MsgBox (t & "はジャストではありません")
    End If

End Sub

Function 時間ジャスト調査(p1 As String)
    Dim s As String
    
    s = 共通_cov_time_t9(p1)
    Select Case Mid(s, 4, 4)
           Case "0000"
               時間ジャスト調査 = "*"
           Case else
               時間ジャスト調査 = ""
    End Select

End Function

Function 共通_cov_time_t9(p1 As String) As String
    共通_cov_time_t9 = "T" & CStr((Format(p1, "hhnnss")))
End Function