VBAでIsnumericとIsnumberを使う

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 3月 31, 2022

このチュートリアルでは、VBAでIsNumeric関数とIsNumber関数を使用して、値が数字であるかどうかを確認する方法について説明します。 IsNumericはVBAの組み込み関数で、IsNumberはVBAのコードから呼び出せるExcelの関数です。

VBAのIsNumberとIsNumericの違い

IsNumberは、値が数字として格納されているかどうかをチェックします。一方、IsNumericは、値が数値に変換できるかどうかをチェックします。 例えば、空白のセルをパラメータとして渡した場合、IsNumberはFALSEを返し、IsNumericはTRUEを返します。また、テキストとして格納された数字を含むセルを渡すと、IsNumber は FALSE を、IsNumeric は TRUE を返します。

このような両関数の制限に注意し、どのような場合にIsNumericを使用し、どのような場合にIsNumberを使用するかを決める必要があります。

VBAでIsNumericを使用する

IsNumericは、値が数値かどうかをチェックし、その結果としてTRUEまたはFALSEのブール値を返すVBA関数です。 この関数には、変数またはセルの値を指定することができます。 以下は、セルの値を取る例です。

If IsNumeric(Sheet1.Range("A1").Value) = True Then
    MsgBox "A1の値は数値です"
Else
    MsgBox "A1の値は数値ではありません"
End If

この例では、セルA1の値が数値であるかどうかをIsNumericでチェックしています。この関数は、関数の結果に応じて適切なメッセージを返します。 次の例では、セルの値の代わりに変数を使用して、同じ操作を行います。

Dim n as Variant

n = Sheet1.Range("A1").Value

If IsNumeric(n) = True Then
    MsgBox "A1の値は数値です"
Else
    MsgBox "A1の値は数値ではありません"
End If

VBAでIsNumberを使用する

IsNumberはExcelの関数で、VBAで使用することができます。IsNumericとほぼ同じような出力が得られます。IsNumber関数の例を見てみましょう。

If Application.WorksheetFunction.IsNumber(Sheet1.Range("A1").Value) = True Then
    MsgBox "A1の値は数値です"
Else
    MsgBox "A1の値は数値ではありません"
End If

コードを見ればわかるように、関数を呼び出すときの構文に違いがあります。IsNumberはExcelの関数なので、Excelの関数名には Application.WorksheetFunctionを関数呼び出しの前に記述してください。

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples