VBA 文字列を数値に変換する
In this Article
VBAのコードの中で、テキストとして保存されている数値を実際の数値に変換することが必要になることがあります。このチュートリアルでは、文字列型を整数(integer)型、長整数(long)型、倍精度浮動小数点(double)型、10進数型、または通貨型に変換するために使用する関数について説明します。(数値を文字列に変換する方法については、ここをクリックしてください)
文字列を整数に変換する
文字列を整数に変換するには、CInt関数またはCLng関数を使用します。小数部分が0.5未満の場合は切り捨て、0.5以上の場合は切り上げとなります。次のコードは、文字列を整数に変換するものです。
MsgBox CInt("7.55")
結果はこのようになります。
次のコードは、CLng関数を使って、文字列を整数に変換します。
MsgBox CLng("13.5")
結果はこのようになります。
注:CInt関数やCLng関数を使用すると、文字列をそれぞれintegerデータ型やlongデータ型に変換することができます。longデータ型は、より大きな数値が許容されることを除けば、integerデータ型と同じです。以前は、メモリの制約のためにこの区別が必要でした。現代のプログラミングでは、メモリの問題がなくなったので、longデータ型を使わない理由はありません。したがって、integerデータ型ではなく常にlongデータ型を使うのが良いでしょう。
イミディエイトウィンドウで、その値が整数に変換されない場合の処理を確認することができます。
Debug.Print "13.5" + "13.5"
通常、テキストは変数として格納され、この変数は以下のコードに示すように数値データ型に変換する必要があります。
Sub Using_Variables()
Dim valueOne As String
valueOne = 5
MsgBox CLng(valueOne) + CLng(valueOne)
End Sub
文字列を10進数に変換する
CDbl または CDec 関数を使用して、文字列を10進数に変換することができます。次のコードは、文字列をdouble型に変換するものです。
MsgBox CDbl("9.1819")
結果はこのようになります。
次のコードは、文字列を decimalデータ型に変換するものです。
MsgBox CDec("13.57") + CDec("13.4")
結果はこのようになります。
イミディエイトウィンドウで、値が doubleデータ型 や decimalデータ型に変換されない場合の処理を確認することができます。
Debug.Print "13.57" + "13.4"
結果はこのようになります。
注:decimalデータ型はdoubleデータ型より大きな数値を格納できるので、常にdecimalデータ型を使用するのが良いでしょう。
文字列を通貨に変換する
CCur関数を使うと、文字列を通貨に変換することができます。次のコードは、文字列を通貨データ型に変換するものです。
Range("A1").Value = CCur("18.5")
結果はこのようになります。
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!