VBA VAL | VBA VAL関数の使い方は?(例付き)

Excel VBAVal関数

vbaのVal関数は文字列関数の下にあります。これはVBAの組み込み関数でもあり、データ変数から数値を取得するために使用されます。変数の値がA10の場合、val関数は出力として10を返します。文字列を引数として取り、文字列に存在する数値を返します。

VALは、VBA用語でVALUEの略です。この関数は、数値を含む文字列を実際の数値に変換します。たとえば、テキスト文字列「1234 Global」を指定すると、数値部分、つまり1234のみが返されます。

多くの場合、Web番号からデータをダウンロードまたは取得すると、通常、スプレッドシートにテキスト値として保存されます。Excelの正しい機能を知らない場合、テキストから数値への変換は最も難しい作業です。通常のワークシート関数として、ワークシート内の単純な関数を使用して、数値を表すすべての文字列を正確な数値に変換するVALUEという関数があります。この記事では、VAL関数を使用してVBAでこれを実現する方法を示します。

構文

引数は1つだけ、つまり文字列です。

  • 文字列:これは、数値部分を取得しようとしている単なる文字列値です。

したがって、VAL関数は、指定された文字列を数値に変換します。

注: VAL関数は常にスペース文字を無視し、スペース文字の後の数字を読み取り続けます。

たとえば、指定された文字列が「145 45 666 3」の場合、スペース文字は無視され、結果は「145456663」として返されます。

ExcelVBAのVAL関数の例

このVBAVal Function Excelテンプレートはここからダウンロードできます– VBA Val FunctionExcelテンプレート

例1

単純な番号、つまり「145647」を使用した最初の例を試してみましょう。

以下のコードはあなたのためです。

コード:

 Sub Val_Example1()Dim k As Variant k = Val( "14 56 47") '上記を145647MsgBoxkに変換しますEndSub 

F5キーを使用して、または手動でVBAコードを実行すると、次の図に示すように、すべてのスペース文字を無視して結果が「145647」として返されます。

例2

この例では、文字列の結果が「+456」であることがわかります。

コード:

 Sub Val_Example2()Dim k As Variant k = Val( "+ 456") '上記を456MsgBoxkに変換しますEndSub 

このコードを手動で実行するか、F5キーを使用して、+ 456を無視して値を456として返すことができます。

例3

次に、負の符号を付けて同じ数を試してみましょう。

コード:

 Sub Val_Example3()Dim k As Variant k = Val( "-456") '上記を-456MsgBoxkに変換しますEndSub 

このコードは、演算子記号付きの数値を表示する必要があるため、値を-456として返します。

例4

では、この文字列「100Kg」を試してみましょう。

コード:

 Sub Val_Example4()Dim k As Variant k = Val( "100 KG") 'KGを無視し、100 MsgBoxkのみを返しますEndSub 

このコードを手動で実行するか、F5キーを使用して実行すると、上記のコードは「KG」を無視し、VBAメッセージボックスに「100」のみを返します。

例5

次に、日付文字列、つまり「14-05-2018」を試してください。

コード:

Sub Val_Example5()Dim k As Variant k = Val( "14-05-2019") '結果として14を返します。MsgBox k End Sub

上記のコードは結果として14を返します。これは、VAL関数は、数字以外のものが見つかるまで数値しかフェッチできないためです。

例6

次に、文字列「7459Good456」を試してください。

コード:

Sub Val_Example6()Dim k As Variant k = Val( "7459 Good 456") '結果として7459を返します。MsgBox k End Sub

これにより、非数値文字が見つかるまで数値が抽出されます。つまり、結果は7459になります。非数値「Good」の後に数値がありますが、それ以降の数値は完全に無視されます。

例7

次に、文字列値「H12456」を試してください。

コード:

Sub Val_Example7()Dim k As Variant k = Val( "H 12456") '結果として0を返します。MsgBox k End Sub

ショートカットキーF5を使用するか、手動で上記のコードを実行すると、結果がゼロとして返されます。指定した文字列の最初の文字は非数値文字であるため、結果はゼロになります。

例8

次に、この文字列「24545」を試してください。2インチ。

コード:

Sub Val_Example8()Dim k As Variant k = Val( "24545 .2") '結果として24545.2を返します。MsgBox k End Sub

VBA VAL関数は文字ドット(。)を小数点文字と見なし、それに応じて結果を返すため、コードは結果を24545.2として返します。