Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » 数値であるが日付ではないをVBAで判定するには??

数値であるが日付ではないをVBAで判定するには??

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2209 ビルド15629.20208 Microsoft Store)

Excelでは、日付は数値の一種です。
ExcelのISNUMBER関数の引数に、日付を指定するとTRUEが返されます。

このことをよくご存知と思われる方による検索でアクセスがありました。
「VBA 数値かつ日付ではない」
という検索でアクセスがありました。

何らかのデータが、数値ではあるけれど日付ではないことを、VBAで判定するにはどうすればいいのかを調べていらしたのでしょう。

[スポンサードリンク]

IsNumeric関数とIsDate関数を確認するサンプルマクロ

日付または数値の入力されているセルがアクティブな状態で、以下のExcelマクロを何度か実行してください。

Sub IsNumericとIsDateの判定結果を確認する()
 Dim var As Variant
 var = ActiveCell.Value

 MsgBox _
  IsNumeric(var) & " ← IsNumeric関数" & vbCrLf & _
  IsDate(var) & " ← IsDate関数"
End Sub

ExcelとVBAでは日付の扱いは異なる

ExcelとVBAでは、日付データの扱いが異なります。

VBAの場合、
IsDate関数を使って「日付データである」を判定できます。
IsNumeric関数を使って「数値である」を判定できます。

そして、ExcelのISNUMBER関数とVBAのIsNumeric関数の挙動は、完全一致していません。

ISNUMBER関数は日付データもTRUEと判定しますが、IsNumeric関数は日付データはFalseと判定してくれます。

VBAで「数値であるが日付ではない」を判定したいのであれば、VBAのIsNumeric関数を使ってみてください。

最終更新日時:2022-11-10 23:44

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » 数値であるが日付ではないをVBAで判定するには??

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.