こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。
皆さんは、VBAで数値を文字列に変換する方法を知っていますか?
計算した数値を、文字列に変換して使うケースはよくあります。
そこで今回は、
・Str関数を使って数値を文字列に変換する方法
といった基礎的なことから、
・Str関数を使った具体的なサンプルコード
・変換後に空白ができてしまう問題の対処方法
・合わせて覚えると便利な文字列操作方法
といった応用的な方法まで、徹底的に解説します!
Str関数を使って数値を文字列に変換する方法
最初に、Str関数の使い方について解説します。
Str関数は以下のように書くことで、数値を文字列に変換することができます。
Str(数値)
カッコ()で数値を囲むだけなので、使い方も簡単ですよね。
このように、簡単に数値を文字列に変換することができます。
サンプルコード
次に、サンプルコードをもとに、具体的な使い方を解説します!
サンプルコード:
Sub Test() Dim intCost As Integer Dim strCost As String intCost = 10000 '文字列に変換 strCost = Str(intCost) MsgBox "商品の購入価格は" & strCost & "円です。" End Sub
実行結果:
このサンプルでは、Integer型の変数(intCost)に10000を代入し、Str関数で変換した結果をString型の変数(strCost)に入れて、結果をメッセージで表示しています。
このように、簡単に文字列に変換することができます。
変換後に空白ができてしまう問題の対処方法
文字列に変換するだけであれば先ほどの方法でもできるのですが、1点注意点があります。
Str関数はプラスの数値を変換する場合、変換後の先頭に半角スペースができてしまいます。
半角スペースが出るサンプル:
Sub Test() Dim intNum_Pls As Integer Dim intNum_Min As Integer intNum_Pls = 100 intNum_Min = -100 '文字列に変換 Dim strNum_Pls As String Dim strNum_Min As String strNum_Pls = Str(intNum_Pls) strNum_Min = Str(intNum_Min) MsgBox "strNum_Pls:" & strNum_Pls & vbCrLf & _ "strNum_Min:" & strNum_Min End Sub
実行結果:
strNum_Pls: 100 strNum_Min:-100
マイナス記号「-」の部分が、プラスの場合は半角スペースになってしまうわけですね。
そのため、半角スペースをなくしつつ文字列に変換するのがおすすめです!
CStr関数を使えば、半角スペースをなくしつつ文字列に変換することができます!
CStr関数を使ったサンプルコード:
Sub Test3() Dim intNum_Pls As Integer Dim intNum_Min As Integer intNum_Pls = 100 intNum_Min = -100 '文字列に変換 Dim strNum_Pls As String Dim strNum_Min As String strNum_Pls = CStr(intNum_Pls) strNum_Min = CStr(intNum_Min) Debug.Print "strNum_Pls:" & strNum_Pls & vbCrLf & _ "strNum_Min:" & strNum_Min End Sub
実行結果:
strNum_Pls:100 strNum_Min:-100
プラスの数値を変換した場合でも、半角スペースは表示されていないですよね。
このように、CStr関数を使えば半角スペースなしで文字列に変換することができます。
Val関数を使って文字列を数値に変換する方法
ここまで数値を文字列に変換する方法を解説してきましたが、合わせて文字列を数値に変換する方法を合わせて覚えておくのがおすすめです!
Val関数を使えば、以下のように簡単に数値に変換することができます。
Val関数を使ったサンプルコード:
Sub Test4() Dim strCost As String strCost = "1000" '数値に変換 Dim intCost As Integer intCost = Val(strCost ) Debug.Print "intCostの値:" & intCost & vbCrLf & _ "intCostの型:" & TypeName(intCost) End Sub
実行結果:
intCostの値:10000 intCostの型:Integer
文字列「10000」をVal関数で数値に変換し、値と型を結果に出力しています。
このように、簡単に文字列を数値変換することができます。
ちなみに、このサンプルで使っているTypeName関数は変数の型を調べることができるので、合わせて覚えておくのがおすすめです!
TypeName関数の使い方は以下でも詳しく解説しているので、気になる方は見てみてくださいね!
補足:合わせて覚えると便利な文字列操作方法
今回はStr関数・CStr関数を使って数値を文字列に変換する方法を解説しましたが、文字列操作で覚えておくと便利な方法がたくさんあります。
以下で詳しくまとめているので、興味がある方はみてくださいね!
まとめ
今回は、VBAで数値を文字列に変換する方法について解説しました。
VBAでは、数値を文字列に変換して使うケースが多いです。
Str関数・CStr関数はどちらもとても簡単なので、ぜひ使ってみてくださいね!