Val関数で文字列を数値に変換する

文字列として入力されている数値を、Val関数を使って数値に変換します。

Val関数は通常の場合、どのような値でもDouble型に変換されます。

Val関数では変換できない場合は「0」を返します。

Val関数の使用例

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル2525()

Dim v As Variant

    v = Val("abc")
    Range("B2") = v
    
    v = Val("1234abc")
    Range("B3") = v

    v = Val("abc567")
    Range("B4") = v
    
    v = Val("0.123abc")
    Range("B5") = v

    v = Val("1,234abc")
    Range("B6") = v
    
    v = Val("あ0123abc")
    Range("B7") = v
    
    v = Val("&H12C")
    Range("B8") = v

End Sub
文字列の中に数値に変換できる数値がないので、「0」を返します。

v = Val("abc")

abcの前の「1234」を返します。

v = Val("1234abc")

abcの後の「567」は認識されないので、「0」を返します。

v = Val("abc567")

「0.123」を返します。

v = Val("0.123abc")

「,」カンマは認識されないので、先頭の「1」を返します。

v = Val("1,234abc")

「あ」は認識されないので、「0」を返します。

v = Val("あ0123abc")

16進数の表し方です。(12C=300)

v = Val("&H12C")

●マクロの実行結果

Val関数で文字列を数値に変換するマクロ

次のような文字列を数値に変換します。

  ■ コード内を「Wクリック」で選択できます。

Sub サンプル2530()
 
    Dim R As Integer
    Dim C As Integer
    Dim ActCell As Range
     
    Range("B1").CurrentRegion.Select
     
    For R = 0 To Selection.Rows.Count - 1
        For C = 0 To Selection.Columns.Count - 1
            Set ActCell = ActiveCell.Offset(R, C)
            ActCell = Val(ActCell)
        Next C
    Next R
     
    MsgBox "数値に変換しました"
     
End Sub
R、C、ActCellを変数として宣言します。

Dim R As Integer
Dim C As Integer
Dim ActCell As Range
B1セルを基準にアクティブセルの領域を取得します。

Range("B1").CurrentRegion.Select
R=0から行-1まで繰り返します。

For R = 0 To Selection.Rows.Count - 1

C=0から列-1まで繰り返します。

For C = 0 To Selection.Columns.Count - 1
メッセージボックスを表示します。

 MsgBox "数値に変換しました"

●マクロの実行結果

数値を文字列としてセルに入力については次の記事が参考になります。
■関連記事■ 数値を文字列としてセルに入力する方法

以上で「Val関数で文字列を数値に変換する」の説明を終わります。