Excel VBA Val関数は、文字列内に含まれる数値を抽出して数値型に変換するための関数です。この関数は、文字列の先頭から数値を読み取り、その数値を返します。具体的な使い方や、注意点やサンプルコードを紹介します。
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
以下のようなシーンで利用されます。
・文字列に数値が含まれている場合に、その数値部分を抽出して数値型として扱いたいとき。
・ユーザー入力が文字列形式で数値を含む場合に、その数値を計算や比較に使用したいとき。
Val(string)
string: 数値を抽出したい文字列を指定します。
・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で自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。