VBAでIsnumericとIsnumberを使う
In this Article
このチュートリアルでは、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を関数呼び出しの前に記述してください。