Excel VBA Val関数は、文字列内に含まれる数値を抽出して数値型に変換するための関数です。この関数は、文字列の先頭から数値を読み取り、その数値を返します。具体的な使い方や、注意点やサンプルコードを紹介します。
以下のようなシーンで利用されます。
・文字列に数値が含まれている場合に、その数値部分を抽出して数値型として扱いたいとき。
・ユーザー入力が文字列形式で数値を含む場合に、その数値を計算や比較に使用したいとき。
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で自動化し、時間を有効活用しませんか?Excel VBAエキスパート資格取得問題集を活用して資格取得、そして効率的な仕事を実現しましょう!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。
ExcelVBAの学習方法で効果的な学び方を知りたい方は、下記「Excel VBA初心者のための効果的な学習ガイド」をご確認ください。