動作検証バージョン: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
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
[スポンサードリンク]
- Newer:グループ化された図形の個数をWord VBAで取得する
- Older:Excelで数値の整数部が一致するか判定する
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » 数値であるが日付ではないをVBAで判定するには??