Excel VBA Val関数の使い方と文字列を数値に変換する方法

VBA関数

今回は文字列をVal関数で数値に変換する方法をご説明します。

文字列を数値に変換する関数は色々ありますが、今回紹介する「Val関数」が一番使い勝手の良い関数かと思います。

データを処理しようとした場合に、文字列の数字が含まれていると演算などでエラーとなってしまいますので、事前に変換する事でエラー回避出来ます。

その他の変換する関数については下記記事をご覧ください。

1.Val関数の使い方

Val関数は指定した文字列の左端から「数字」、「半角スペース」と「タブ」と「.(ドット)」が続く間だけ数値に変換します。

よくあるケースで先頭に「\」マーク、桁区切りの「,(カンマ)」が含まれていると、そこで変換がとまってしまいますのでご注意ください。

Val関数の構文は次のように記述します。

Val(文字列)

変換される数値によってIntegerやDoubleなど適切な型に自動的に変換して返します。

自動的に型を変換してくれるのがVal関数の特徴です。

数値型に変換できないときは 0 を返します。

2.サンプルコード

Sub Sample1()

Debug.Print Val("ABC")  '文字列は0を返します。

Debug.Print Val("123A456") 'Aの前まで数値に変換します。

Debug.Print Val("ABC123") '先頭が文字なので0を返します。

Debug.Print Val("1 2 3") '123に変換します。

Debug.Print Val("1.23") '1.23に変換します。

Debug.Print Val("1,234") 'カンマは文字扱のため1のみ変換します。

Debug.Print Val("\123") '\マークは変換出来ないので0を返します。
  
Debug.Print Val("&HFF") '255を返します。

End Sub
タイトルとURLをコピーしました