文字列として入力されている数値を、Val関数を使って数値に変換します。
Val関数は通常の場合、どのような値でもDouble型に変換されます。
Val関数では変換できない場合は「0」を返します。
目次
Val関数の使用例
■ コード内を「Wクリック」で選択できます。
Sub サンプル2525() Dim v As Variant <pre><code>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("&amp;H12C") Range("B8") = v</code></pre> 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("&amp;H12C")

■ マクロの実行結果

Val関数で文字列を数値に変換するマクロ
次のような文字列を数値に変換します。

■ コード内を「Wクリック」で選択できます。
Sub サンプル2530() <pre><code>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 "数値に変換しました"</code></pre> 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関数で文字列を数値に変換する」の説明を終わります。