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
こんなかんじ。
小数を許容したい場合はちょっと作り替えるだけだと思う。