数字の配列がはいっているはずですが、間違って、文字列をいれていたらチェックしたいのです。
ところが下記のように、数字なのに、数字でないと判定されています。どういった関数をつかったら
いいのでしょうか?
Sub test()
Dim t
t = Split("3,1,-1,-3,間違って文字列", ",")
If Not Application.IsNumber(t(0)) Then
MsgBox t(0) & " は数字ではありません。"
End If
t = 3
If Application.IsNumber(t) Then
MsgBox t & " は数字です。"
End If
End Sub
Application.IsNumber
ではなく
IsNumeric
を使ってみてください。
Dim i As Long Dim t t = Split("3,1,-1,-3,間違って文字列", ",") For i = 0 To UBound(t) If IsNumeric(t(i)) Then MsgBox t(i) & "は数字です" Else MsgBox t(i) & "は数字ではありません" End If Next i
のようなコードにすれば正しく認識すると思います。
Application.IsNumber を IsNumericに置き換えてください。
Sub test()
Dim t
t = Split("3,1,-1,-3,間違って文字列", ",")
If Not IsNumeric(t(0)) Then
MsgBox t(0) & " は数字ではありません。"
End If
t = 3
If IsNumeric(t) Then
MsgBox t & " は数字です。"
End If
End Sub
t = 3
を
t = "3"
とすると、Application.IsNumberはFALSEを返すと思いますが、Application.IsNumberは、その変数が数値を扱えるか否かをチェックするもので、値をチェックするものではありません。
コメント(0件)