VBAは、1899年12月30日からの日数として日付を格納します。
画像クレジット: Sergii Gnatiuk / iStock / Getty Images
Microsoft Visual Basic for Applicationsで日付を比較することは、他のデータ型を比較することと同じです。 比較する値は、「日付」タイプである必要があります。 標準の比較演算子を使用できます。「"は "より大きい"; "> ="「以上」の場合; "="に等しい "; 「等しくない」の場合は「<>」。 「Is」と「IsNot」の2つの比較演算子を使用することもできます。
VBA日付タイプ
日付を比較するときに、VBAが日付値をメモリに保存する方法を覚えておくと便利です。 日付は、倍精度浮動小数点数またはDoubleとして格納されます。 長整数部分は、1899年12月30日以降の正または負の日数です。 小数点以下の部分は、真夜中から経過した時間です。 時間のない日付では、小数点以下の部分がゼロに設定されます。 たとえば、1967年5月1日は24593.0として保存されます。 これは、VBAが2つの日付を比較するとき、実際には日を表す2つの数値を比較していることを意味します。
今日のビデオ
文字列対 日にち
VBAで日付を比較するときは、比較する値が「日付」タイプであり、文字列ではないことを確認する必要があります。 たとえば、文字列「05/01/1999」は、「05」のため、文字列「12/31/1900」よりも小さくなります。 「12」の前に来る。 「CDate」関数を使用して文字列を日付型に変換します(例:「CDate」)。 (テキストボックス。 価値)"。
役立つ機能
CDate()に加えて、日付を比較するときに使用できる他の便利な関数があります。 「Date()」関数は、今日の日付を日付値として提供します。 「Now()」関数は、今日の日付と時刻を日付値として提供します。 日付データ型には時間コンポーネントも含まれているため、変数の日付部分のみを抽出できます 「DateValue()」関数を使用して日付を比較する場合、たとえば、「送信の場合> DateValue(期限)Then ..."
日付演算
日付は1899年12月30日からの日数として保存されるため、VBAで日付を比較するときに日付演算を含めることができます。 たとえば、チケットを購入してから3日後に有効期限が切れた場合、次のようなVBAコードを使用して有効期限が切れたチケットを確認できます。
パブリック関数の有効期限が切れました(日付として購入)ブール値の有効期限が切れた= False購入の場合+3> Date()その後期限切れ= True End If End Function