エクセルVBAで日付と時刻を比較
この例では、Excel VBAで日付と時刻を比較する方法を教えています。日付と時刻は、Excelでの数値として格納され、あなたは番号の形式に依存してご覧何1月0、1900年以来の日数を数えています。
列Aでいくつかの数字を入力します。1.
2.これらの数字は、日付です。これは、日付のフォーマットを気にすることなく、いくつかの日付を入力するのに最適な方法です。日付への書式を変更します(右列Aのヘッダ、セルの書式設定をクリックして日付を選択します)。
結果:
注:日付は米国のフォーマットです。最初の月、日セカンド。フォーマットのこのタイプは、あなたの窓地域の設定に依存します。
ワークシート上のコマンドボタンを配置し、次のコード行を追加します。
Integer型の変数iを宣言3.。
Dim i As Integer
次のループの追加4。
For i = 1 To 5 Next i
-
Date関数は、時間のない現在の日付を返します。現在の日付(2020年3月13日)を含むすべてのセルを強調するために、ループに次のコード行を追加します。
If Cells(i, 1).Value = Date Then Cells(i, 1).Font.Color = vbRed
結果:
以前の2019年4月19日より、すべての日付を強調するために、ループに次のコード行を追加します6。
If Cells(i, 1).Value < DateValue("April 19, 2019") Then Cells(i, 1).Font.Color = vbRed
結果:
7.しかし何回について、我々はあなたが言うのを聞きます。彼らは小数です。一般的な形式に切り替えし、小数番号に番号を変更します。
8.今、「日付と時刻」の形式にフォーマットを変更します。
結果:
9.あなたが現在の日付を含むすべてのセルを強調表示したい場合は、私たちはもう5でコード行を使用することはできません。何故なの? A列の数字は今小数されているため。日付(整数)とそれを比較すると、いずれかの一致が得られないでしょう。 (それだけで正確に真夜中に2020年3月13日との一致を与えるだろう!)次のコード行は、作業を行います。
If Int(Cells(i, 1).Value) = Date Then Cells(i, 1).Font.Color = vbRed
説明:我々は単にInt関数を使用します。 Int関数は、最も近い整数までの番号を丸め。このように、我々は時間なしの日付を取得し、日付とこれらの日付を比較することができます。
結果:
10.朝の時間を含むすべてのセルを強調表示するために、次のコード行を追加します。
If (Cells(i, 1).Value - Int(Cells(i, 1).Value)) < 0.5 Then Cells(i, 1).Font.Color = vbRed
説明:我々は唯一ので、したがって、我々は整数部分を引く小数を必要としています。正午(日途中)は0.5として表されます。
小数は0.5朝時代よりも下げます。
結果: