MENU

【初心者向け】Val関数で文字列から数値だけを取り出すテクニック

A子さん

「“123円”とか“¥1,000”って、数字っぽいけど文字扱いなんだよね…」
「この中の数字だけ取り出したい時って、どうするの?」

先輩

そんなときに活躍するのが Val関数 です!

結論:Val関数で「先頭の数字だけ」を数値として取り出せる!

目次

Val関数とは?

Val(文字列) は、文字列の先頭から読み取れる数字だけを数値として返すVBA関数です。

Val("123円")     ' → 123
Val("¥1000")     ' → 0(先頭が記号のため)
Val("1000abc")   ' → 1000

基本的な使い方

Dim text As String
Dim num As Double

text = "123円"
num = Val(text)

MsgBox num    ' → 123

実務での活用例:価格や個数などの抽出に便利

Dim raw As String
raw = "商品価格:1980円"

Dim price As Long
price = Val(raw)

MsgBox "数値部分は " & price    ' → 1980
先輩

商品情報やユーザー入力から「数値だけ取り出す」用途に最適です!

注意点:先頭が数字でないと 0 になる

Val("¥1200")   ' → 0(最初が¥のため)
Val("abc123")  ' → 0(文字で始まると読み取れない)

対策:Replaceで記号を除去してから使おう!

Dim raw As String
raw = "¥1,200"

raw = Replace(raw, "¥", "")
raw = Replace(raw, ",", "")

Dim valueOnly As Long
valueOnly = Val(raw)

MsgBox valueOnly    ' → 1200

応用:複数セルに適用する場合

Dim i As Long
For i = 2 To 10
    Dim txt As String
    txt = Cells(i, 1).Value
    
    txt = Replace(txt, "円", "")
    txt = Replace(txt, "¥", "")
    txt = Replace(txt, ",", "")
    
    Cells(i, 2).Value = Val(txt)
Next i
先輩

A列に「1,980円」などが入っていても、B列に数値のみを抽出できます。

まとめ:Val関数のポイント

ポイント内容
文字列の先頭から数字だけを取り出す"123abc"123
先頭が文字や記号なら 0"abc123"0
カンマや記号は事前に Replace"¥1,000""1000" にしてから使用
実務では価格やIDの抽出に便利入力ミスや混在データの補正に使える
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次