
Excel VBA Val関数は、文字列内に含まれる数値を抽出して数値型に変換するための関数です。この関数は、文字列の先頭から数値を読み取り、その数値を返します。具体的な使い方や、注意点やサンプルコードを紹介します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
Excel VBA Valを利用
以下のようなシーンで利用されます。
・文字列に数値が含まれている場合に、その数値部分を抽出して数値型として扱いたいとき。
・ユーザー入力が文字列形式で数値を含む場合に、その数値を計算や比較に使用したいとき。
Excel VBA Valを利用|使い方とポイント
Val(string)
string: 数値を抽出したい文字列を指定します。
・Val関数は文字列の先頭から数値部分を読み取ります。最初の数値以降の文字は無視します。
・数値以外の文字が最初に現れる場合、その文字の前までの数値を抽出します。それ以降の文字は無視します。
・小数点としてピリオド(.)のみを認識します。コンマ(,)は数値の一部として認識されません。
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
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で自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。