Excel VBA 数値チェック

  • デル株式会社
  • 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
    

    こんなかんじ。
    小数を許容したい場合はちょっと作り替えるだけだと思う。



    関連記事

    ページ上部へ戻る