数字は通常、数値として取り扱うことが殆どですが、文字列として取り扱うこともあります。
この記事では、数値を文字列に変換する方法、逆に文字列を数値に変換する方法についてご紹介します。
数値を文字列に変換したい(Str関数)
数値を文字列に変換する関数の構文は、以下の通りです。
Str(数値)
とても簡単ですが、見た目が変わらないので実際に変わったかどうかわかりません。
TypeName関数という変数の方を文字列で返す関数があります。TypeName関数でどう変わるか試してみましょう。
Sub 数値→文字列変換()
MsgBox 10 & "→" & Str(10)
MsgBox TypeName(10) & "→" & TypeName(Str(10))
End Sub
変数ではなく直接数値を入れていますが、これを実行すると、
と表示され、文字列に変換されることがわかります。
文字列変換時のスペースを消したい(CStr関数)
Str関数は、プラス(+)とマイナス(-)を認識して変換するため、プラスの場合は半角スペースが表示されます。半角スペースを消して使いたい場合は、CStr関数を使いましょう。構文は以下の通りです。
CStr(数値)
先ほどのコードで、Str関数をCStr関数に変えてみましょう。
Sub 数値→文字列変換2()
MsgBox 10 & "→" & CStr(10)
MsgBox TypeName(10) & "→" & TypeName(CStr(10))
End Sub
半角スペースが消えました。
Str関数は正負記号付きの文字列に変換するのに対し、Cstr関数は数値をそのまま文字列に変換します。
文字列を数値に変換したい(Val関数)
文字列を数値に変換する関数の構文は、以下の通りです。
Val(文字列)
こちらもとても簡単ですね。見た目が変わらないので、TypeName関数を使ってどう変わるか確認します。
Sub 文字→列数値変換()
MsgBox "10" & "→" & Val("10")
MsgBox TypeName("10") & "→" & TypeName(Val("10"))
End Sub
※ダブルコーテーション(”)で数字を囲むと文字列として扱われます。
Val関数で数値に変換した場合、”Double”に変換されるようです。
Val関数で数字以外の文字列を入れるとどうなる?
数字以外の文字列をVal関数で変換しようとするとどうなるでしょう?
Sub 文字列→数値変換2()
MsgBox Val("テスト")
End Sub
エラーが出るかと思っていましたが、「0」に変換されるようでした。
コメント