2017年7月19日

【Excel】日付や時刻の差分を求めるマクロ


日付や時刻の差分を求めるには、DateDiff関数を使います。

たとえば、2017/7/1と2017/7/20の差分(日数)を求めるには、次のように記述します。
1
2
3
4
5
6
7
8
9
10
11
Sub GetDateTimeDiff()
 
    Dim dt1 As Date
    Dim dt2 As Date
     
    dt1 = CDate("2017/07/01")
    dt2 = CDate("2017/07/20")
     
    MsgBox DateDiff("d", dt1, dt2)
     
End Sub
第1引数で算出したい時間の間隔を指定します。この例では日数ですので"d"を指定しています。この設定値については下記の表を参照してください。

実行結果



東京オリンピック開幕まであと何日か?

ここでこのDateDiffを利用して、東京オリンピック開幕までの残り時間を求めてみたいと思います。
いろいろ方法はあると思いますが、ここでは開幕式の時刻(2020/7/24 20:00)までの秒数を求めてから日数、時間、分、秒を算出しています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub GetTokyoOlympicsDiff()
 
    Dim timeSpan As Long
     
    '東京オリンピック開幕式までの残り時間(秒)を求める
    timeSpan = DateDiff("s", Now, "2020/7/24 20:00")
     
    Dim d As Integer
    Dim h As Integer
    Dim m As Integer
    Dim s As Integer
 
    '残り時間(秒)から日数、時間、分、秒を求める   
    d = Int(timeSpan / 86400)
    h = Int((timeSpan Mod 86400) / 3600)
    m = Int((timeSpan Mod 3600) / 60)
    s = (timeSpan Mod 3600) Mod 60
     
    MsgBox "東京オリンピック開幕まで、あと " & _
            d & "日" & _
            h & "時間" & _
            m & "分" & _
            s & "秒"
 
End Sub

実行結果





第1引数(時間間隔)の設定値
設定 説明
yyyy
q 四半期
m
y 通日
d
w 平日
ww
h 時間
n
s


<参考サイト>
DateDiff 関数 | Office VBA 言語リファレンス
2020年 東京オリンピックへのカウントダウン!

スポンサーリンク



Follow Me on Pinterest
Clip to Evernote