スポンサーリンク

Excel VBAで,2つの日付を比較し,差分を計算する関数

Excel/Wordオフィス製品のTipsまとめへ


日付の間隔を求めるVBAサンプルコード。

けっこう簡単に,日数を計算できる。

Sub main()
    ' 2つの日付を比較
    d1 = CDate("2001/01/01")
    d2 = CDate("2015/12/31")
        
    MsgBox DateDiff("d", d1, d2) ' d2 - d1
    MsgBox DateDiff("d", d2, d1) ' d1 - d2
    
    ' 今日の日付と比較
    MsgBox DateDiff("d", Date, d2) ' 今日からd2まで
    MsgBox DateDiff("d", d2, Date) ' d2から今日まで
End Sub

コードの説明

CDate関数で,文字列を日付オブジェクトに変換。


DateDiff関数で,2つの日付オブジェクトを比較できる。

引数の順番は,(1番目)から(2番目)まで,の日数。

もし計算結果の符号が負であれば,過去にさかのぼっているのだと判定できる。

参考資料

アクセスVBA講座_関数編_日付・時刻関数
http://www.geocities.jp/cbc_vbnet/fun...


三流君VBA:文字列を日付型に変換、Cdateへの値の渡し方いろいろ?
http://www.ken3.org/vba/backno/vba072...


Excel/Wordオフィス製品のTipsまとめへ