今回は文字列をVal関数で数値に変換する方法をご説明します。
文字列を数値に変換する関数は色々ありますが、今回紹介する「Val関数」が一番使い勝手の良い関数かと思います。
データを処理しようとした場合に、文字列の数字が含まれていると演算などでエラーとなってしまいますので、事前に変換する事でエラー回避出来ます。
その他の変換する関数については下記記事をご覧ください。
- CLng関数で文字列をLong型の数値に変換する
- CDbl関数で文字列をDouble型の数値に変換する
- CSng関数で文字列をSingle型の数値に変換する
- CInt関数で文字列をInteger型の数値に変換する
- CDec関数で文字列をDecimal型(10進数)の数値に変換する
- 文字列の大文字と小文字、全角と半角を変換する方法
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