VBAで自動化 VBA一覧 変換・データ型 配列・データ操作

【VBA】IsNumeric関数:値が数値か確認する方法

Excel VBAでは、データが数値であるかどうかを確認するための便利な関数がいくつか提供されています。IsNumeric関数は、指定した値が数値であるかどうかを確認するための便利な関数です。IsNumeric関数の使い方について説明します。

IsNumeric関数とは

IsNumeric関数は、指定した値が数値として評価できるかどうかを判定するための関数です。数値、数値を含む文字列、日付など、数値として解釈できる値に対してTrueを返し、それ以外の値に対してFalseを返します。

【基本的な構文】
IsNumeric(Expression)

  • Expression
    数値として評価したい値。

 数値の判定

数値を判定する基本的な例です。

Sub CheckIfNumeric()

Dim value As Variant

value = 1234

If IsNumeric(value) Then

MsgBox "The value is numeric."

Else

MsgBox "The value is not numeric."

End If

End Sub

 文字列を判定

数値を含む文字列を判定する例です。

Sub CheckIfStringIsNumeric()

Dim value As Variant

value = "1234.56"

If IsNumeric(value) Then

MsgBox "The string is numeric."

Else

MsgBox "The string is not numeric."

End If

End Sub

 日付を判定

日付を判定する例です。

Sub CheckIfDateIsNumeric()

Dim value As Variant

value = DateSerial(2024, 7, 9)

If IsNumeric(value) Then

MsgBox "The date is numeric."

Else

MsgBox "The date is not numeric."

End If

End Sub

IsNumeric関数の応用例

セルの値を判定

セルの値が数値であるかどうかを判定する方法です。

Sub CheckIfCellIsNumeric()

Dim cellValue As Variant

' セルA1の値を取得
cellValue = ThisWorkbook.Sheets("Sheet1").Range("A1").Value

' セルの値が数値かどうかを判定
If IsNumeric(cellValue) Then

MsgBox "The cell value is numeric."

Else

MsgBox "The cell value is not numeric."

End If

End Sub

ユーザー入力を判定

ユーザーからの入力が数値であるかどうかを判定する方法です。

Sub CheckIfUserInputIsNumeric()

Dim userInput As Variant

' ユーザーからの入力を取得
userInput = InputBox("Enter a value:")

' 入力が数値かどうかを判定
If IsNumeric(userInput) Then

MsgBox "The input is numeric."

Else

MsgBox "The input is not numeric."

End If

End Sub

 配列の要素を判定

配列の要素が数値であるかどうかを判定する方法です。

Sub CheckIfArrayElementsAreNumeric()

Dim arr(1 To 3) As Variant
Dim i As Integer

' 配列に値を代入
arr(1) = "100"
arr(2) = "abc"
arr(3) = 300.25

' 配列の要素が数値かどうかを判定
For i = 1 To 3

If IsNumeric(arr(i)) Then

MsgBox "Element " & i & " is numeric."

Else

MsgBox "Element " & i & " is not numeric."

End If

Next i

End Sub

IsNumeric関数の使用上の注意点

  • IsNumeric関数は、文字列が数値を含んでいるかどうかも判定します。例えば、"1234"や"123.45"などの文字列も数値として評価されます。
  • 空のセルや空の文字列に対してはFalseを返します。
  • 数値以外の文字列(例えば、"ABC")や特殊文字が含まれている文字列に対してはFalseを返します。

まとめ

IsNumeric関数は、Excel VBAで値が数値であるかどうかを判定するための便利なツールです。数値、数値を含む文字列、日付などを簡単に確認できるため、データの検証や処理に役立ちます。

-VBAで自動化, VBA一覧, 変換・データ型, 配列・データ操作