VBAにはIsNumericって関数があるけど、12Aとか、最初に数字があるとTrueになっちゃうので、自作関数で対応してみた。
' 【機 能】 入力されている文字列は、「数値」かをチェックする
' "12A34" ⇒ False(戻り値)
' "12.34" ⇒ False(戻り値)
' "-123" ⇒ False(戻り値)
' "" ⇒ False(戻り値)
' "1" ⇒ True(戻り値)
'
' 【入出力】 value : (IN) 検査したい文字列
'
' 【戻り値】 数値か True:数値 False:数値でない
Public Function IsDigit(ByVal value As String) As Boolean
Dim ii As Long
IsDigit = False
If Len(value) = 0 Then
Exit Function
End If
For ii = 1 To Len(value)
If Not (Mid(value, ii, 1) Like "[0-9]") Then Exit Function
Next ii
IsDigit = True
End Function
こんなかんじ。
小数を許容したい場合はちょっと作り替えるだけだと思う。








