ある日から、ある日までの日数(差)を計算します。

【実行画面】

@最初のインプットボックス

 ここに、小さい方の日付を入力します。
 未入力かキャンセルでスクリプトが終了します。

A二番目のインプットボックス

 ここに、大きい方の日付を入力します。
 未入力かキャンセルだと最初のインプットボックスに戻ります。

 最初のインプットボックスに入れた日付の方が大きい場合は、この数字が、 マイナスになります。

< VBScript >

'//////////////////////////////////////////////////////////
'//
'//     二つの日付の日数差を計算する
'//
Option Explicit
Dim date1, date2

Do
    '// 最初のインプットボックス(いつから)
    date1 = InputBox(_
        " ある日から、ある日までの日数を計算します。" &_
        vbCr &_
        " ここに小さい方の日付(年月日)を入れて下さい。" &_
        vbCr & vbCr & "(例)" & vbCr &_
        "2003/01/01" & vbCr & "h15-1-1",_
        "日数計算・この日から")
    
    '// 未入力・キャンセルで終了
    If date1 = "" Then
        WScript.Quit
    End If
    
    '// 日付が入力されたらループを抜ける
    If IsDate(date1) Then
        Call DateAf     '2番目のインプットボックスの処理
        If date2 = "" Then
        Else
            Exit Do
        End If
    Else
        MsgBox "入力した式が日付として判断されません。" & vbCr &_
            "入力し直して下さい。",48,_
            "小さい方の日付について"
    End If
Loop

'// 結果を表示
MsgBox DateValue(date1) & "から" & vbCr & DateValue(date2) &_
    "までは" & vbCr & DateDiff("y",date1,date2) & "日です。",64,_
    "日数計算"


'////////////////////////////
'// 2番目のインプットボックスのサブルーチン
Sub DateAf
    '// 正しい日付が入力されるか、未入力(キャンセル)でループを
    '// 抜ける
    Do
        date2 = InputBox(_
            " ここに大きい方の日付(年月日)を入れて下さい。" &_
            vbCr & vbCr & "(例)" & vbCr &_
            "2004/01/01" & vbCr & "12-31",_
            "日数計算・この日まで")
        If date2 = "" Or IsDate(date2) Then
            Exit Do
        Else
            MsgBox "入力した式が日付として判断されません。" &_
                vbCr & "入力し直して下さい。",48,_
                "大きい方の日付について"
        End If
    Loop
End Sub




戻る