教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでVal関数の使い方

構文

構文は以下の通りです。

Val(文字列)

解説

Val関数は、文字列の先頭にある数字を数値として返す関数です。文字列の中に数字以外の文字が含まれている場合、その文字の直前までの数字が返され、それ以降の文字は無視されます。もし、文字列が数字で始まっていない場合、Val関数は0を返します。

プログラミング例

具体的なプログラミング例を紹介します。

Sub Val関数の例()
    Dim 数値1 As Double
    Dim 数値2 As Double
    Dim 数値3 As Double
    Dim 文字列 As String
    文字列 = "123ABC456"
    数値1 = Val(文字列)
    MsgBox "文字列から抽出された数字は: " & 数値1
    文字列 = "ABC123"
    数値2 = Val(文字列)
    MsgBox "文字列が数字で始まらない場合: " & 数値2
    文字列 = "456.78"
    数値3 = Val(文字列)
    MsgBox "小数点を含む数字の場合: " & 数値3
End Sub

上記のプログラムは、文字列 = "123ABC456"の場合、Val関数は先頭の"123"を数値として認識し、数値1に123を代入します。結果として、メッセージボックスに"文字列から抽出された数字は: 123"と表示されます。また、文字列 = "ABC123"の場合、文字列が数字で始まっていないため、Val関数は0を返します。メッセージボックスには"文字列が数字で始まらない場合: 0"と表示されます。更に、文字列 = "456.78"の場合、Val関数は数値部分"456.78"をそのまま認識し、数値3に456.78を代入します。メッセージボックスには "小数点を含む数字の場合: 456.78"と表示されます。

まとめ

Val関数は文字列から数字を抽出するために便利な関数です。数字以外の文字が含まれている場合でも、先頭の数字部分だけを取得できるため、特定のフォーマットを持つデータから数値を取り出したいときに役立ちます。しかし、数字以外で始まる文字列に対しては 0 を返すため、その点を注意して使用する必要があります。