サイトについて      連絡先   検索

VBA Val 関数

はじめに

Excel VBA マクロの Val 関数を紹介します。

Val 関数は、文字列を必ず数値型に変換して返します。

エラーが発生しないように文字列を数値型に変換したいときに使用します。

  • 目次
    • 構文
    • 解説
    • 使用例

構文

Val(文字列)
文字列を数値に変換します。

引数「文字列」文字列を指定します。
戻り値の型変換した数値に対応した数値型 (主に Double など)

解説

エラーを発生させないで、必ず数値型に変換します。

通常はどのような値でも Double 型に変換されます。

文字列の先頭に数字が含まれていれば、そこまでの数字を数値型に変換して返します。

16進数の文字列も変換できます。

\100のように「CInt 関数」では変換できる値でも Val 関数では変換できないものもあります。

変換できないときは0を返します。

使用例


Dim v As Variant

v = Val("あいう")
Debug.Print(v) ' 0

v = Val("123あいう456")
Debug.Print(v) ' 123

v = Val("あいう456")
Debug.Print(v) ' 0

v = Val("1 2 3")
Debug.Print(v) ' 123

v = Val("1.23")
Debug.Print(v) ' 1.23

v = Val("1,234")
Debug.Print(v) ' 1

v = Val("\123")
Debug.Print(v) ' 0
  
v = Val("&HFF")
Debug.Print(v) ' 255

CInt 関数」などは変換できないときにエラーが発生します。


Dim s As String
s = "Tips"

i = CInt(s) ' エラー

If IsNumeric(s) = True Then ' 変換できるときだけ実行する
    i = CInt(s)
End If
  • 目次
    • 構文
    • 解説
    • 使用例