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

 

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

 

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

 

Excel VBA Valを利用

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

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

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

 

使い方

Val(string)

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

 

ポイント

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

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

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

 

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で自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。