Excel VBA Val関数は文字列内に含まれる数値を抽出して数値型に変換

 

Excel VBA Val関数は、文字列内に含まれる数値を抽出して数値型に変換するための関数です。この関数は、文字列の先頭から数値を読み取り、その数値を返します。具体的な使い方や、注意点やサンプルコードを紹介します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA Valを利用

以下のようなシーンで利用されます。

・文字列に数値が含まれている場合に、その数値部分を抽出して数値型として扱いたいとき。

・ユーザー入力が文字列形式で数値を含む場合に、その数値を計算や比較に使用したいとき。

 

Excel VBA Valを利用|使い方とポイント

 

使い方

Val(string)

string: 数値を抽出したい文字列を指定します。

 

ポイント

・Val関数は文字列の先頭から数値部分を読み取ります。最初の数値以降の文字は無視します。

・数値以外の文字が最初に現れる場合、その文字の前までの数値を抽出します。それ以降の文字は無視します。

・小数点としてピリオド(.)のみを認識します。コンマ(,)は数値の一部として認識されません。

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

Excel VBA Valのサンプルコード

Option Explicit

Sub ExampleValUsage()
    Dim str1 As String
    Dim str2 As String
    Dim str3 As String
    Dim num1 As Double
    Dim num2 As Double
    Dim num3 As Double
    
    str1 = "123.45abc"
    str2 = "abc123.45"
    str3 = "123,456.78xyz"
    
    num1 = Val(str1) ' 123.45
    num2 = Val(str2) ' 0
    num3 = Val(str3) ' 123
    
    MsgBox "Num1: " & num1 ' 出力: Num1: 123.45
    MsgBox "Num2: " & num2 ' 出力: Num2: 0
    MsgBox "Num3: " & num3 ' 出力: Num3: 123
End Sub
解説

・str1 = "123.45abc"
文字列の先頭に数値があるため、Val関数は最初の数値部分「123.45」を抽出します。
結果: `123.45`

・str2 = "abc123.45"
文字列の先頭に数値がないため、Val関数は最初の数値部分が存在しないと判断し、0を返します。
結果: `0`

・str3 = "123,456.78xyz"
文字列の先頭に数値があるが、コンマ(,)は数値の一部として認識されないため、Val関数は最初の数値部分「123」を抽出します。
結果: `123`

Val関数を使うことで、文字列から数値を抽出し、計算や比較に利用することが簡単になります。注意点を理解して適切に利用することが重要です。

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問