アフィリエイト広告を利用しています

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

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

Val関数は通常の場合、どのような値でもDouble型に変換されます。Val関数では変換できない場合は「0」を返します。

目次

Val関数の使用例

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

コード解説

v = Val(“abc”)
’文字列の中に数値に変換できる数値がないので、「0」を返します。

v = Val(“1234abc”)
’abcの前の「1234」を返します。

v = Val(“abc567”)
’abcの後の「567」は認識されないので、「0」を返します。

v = Val(“0.123abc”)
’「0.123」を返します。

v = Val(“1,234abc”)
’「,」カンマは認識されないので、先頭の「1」を返します。

v = Val(“あ0123abc”)
’「あ」は認識されないので、「0」を返します。

v = Val(“&H12C”)
’16進数の表し方です。(12C=300)

マクロの実行結果

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

セルB1からセルD10に、次のような文字列のデータが入っています。を数値に変換します。

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

コード解説

Dim R As Integer
Dim C As Integer
Dim ActCell As Range
’R、C、ActCellを、変数として宣言します。

Range(“B1”).CurrentRegion.Select
’B1セルを基準に、アクティブセルの領域を取得します。

For R = 0 To Selection.Rows.Count – 1
’R=0から行-1まで、操作を繰り返します。

For C = 0 To Selection.Columns.Count – 1
’C=0から列-1まで、操作を繰り返します。

MsgBox “数値に変換しました”
’メッセージボックスを使って、数値に変換したことを表示します。

マクロの実行結果

まとめ

Val関数を使うと、文字列を数値に変換することができます。

  • Val(“abc”)は、文字列の中に数値に変換できる数値がないので、「0」を返します。
  • Val(“1234abc”)は、abcの前の「1234」を返します。
  • Val(“abc567”)は、abcの後の「567」が認識されないので、「0」を返します。
  • Val(“0.123abc”)は、「0.123」を返します。
  • Val(“1,234abc”)は、「,」カンマは認識されないので、先頭の「1」を返します。
  • Val(“あ0123abc”)は、「あ」は認識されないので、「0」を返します。
  • Val(“&H12C”)は、16進数の表し方です。(12C=300)

数値を文字列としてセルに入力する4つの方法を解説!

目次