【VBA】型変換の関数一覧【実行例つき】
以下のリンクから各型変換関数の説明にジャンプできます。
- CBool関数: Booleanへの変換
- CByte関数: Byteへの変換
- CInt関数: Integerへの変換
- CLng関数: Longへの変換
- CLngLng関数: LongLongへの変換 (64ビット環境のみ)
- CLngPtr関数: LongPtrへの変換
- CCur関数: Currencyへの変換
- CDec関数: Decimalへの変換
- CSng関数: Singleへの変換
- CDbl関数: Doubleへの変換
- CDate関数: Dateへの変換
- CStr関数: Stringへの変換
- CVar関数: Variantへの変換
CBool関数: Booleanへの変換
CBool関数は、指定した式 (expression) を Boolean
型に変換します。Boolean型は True
または False
の2つの値しか持たず、条件判断や論理演算において非常に重要です。一般的に、数値の 0
は False
と評価され、0
以外の値は True
と評価されます。
例:
Dim flag As Boolean flag = CBool(0) ' 結果は False flag = CBool(25) ' 結果は True Dim sample As Boolean sample = CBool("True") ' 文字列 "True" を Boolean に変換(結果は True)
※ 文字列の場合、内容によってはエラーになることもあるので注意してください。
CByte関数: Byteへの変換
CByte関数は、与えられた式を Byte
型に変換します。Byte型は 0 から 255 までの整数を表現するためのデータ型です。変換する値がこの範囲外の場合は、実行時エラーが発生します。
例:
Dim b As Byte b = CByte(100) ' 結果は 100 'b = CByte(300) ' この行はエラー:300 は Byte の範囲 (0~255) を超えています Dim numericString As String numericString = "200" b = CByte(numericString) ' 文字列 "200" を Byte に変換(結果は 200)
CInt関数: Integerへの変換
CInt関数は、与えられた式を Integer
型に変換します。VBA の Integer 型は 16 ビット整数で、-32,768 ~ 32,767 の範囲の値を扱います。小数点を含む値の場合は四捨五入されます。
例:
Dim i As Integer i = CInt(123.45) ' 結果は 123 または 124 (四捨五入の結果に依存) i = CInt("250") ' 文字列 "250" を Integer に変換(結果は 250)
※ 小数点以下が .5 の場合、VBA は「銀行丸め」と呼ばれる方法で偶数側に丸めることがあります。
CLng関数: Longへの変換
CLng関数は、与えられた式を Long
型に変換します。Long 型は 32 ビットの整数で、-2,147,483,648 ~ 2,147,483,647 の範囲の値を扱えます。大きな数値や四捨五入が必要な場合に便利です。
例:
Dim lngValue As Long lngValue = CLng(123456.78) ' 結果は 123457(四捨五入) lngValue = CLng("987654321") ' 文字列から Long への変換(結果は 987654321)
CLngLng関数: LongLongへの変換 (64ビット環境のみ)
CLngLng関数は、与えられた式を LongLong
型に変換します。LongLong 型は 64 ビット整数で、非常に大きな数値を扱うことができます。ただし、この関数は 64 ビット版の VBA でのみ利用可能です。
例:
Dim bigNum As LongLong bigNum = CLngLng(1234567890123) ' 64ビット環境でのみ有効
※ 32 ビット環境ではこの関数は使用できませんのでご注意ください。
CLngPtr関数: LongPtrへの変換
CLngPtr関数は、与えられた式を LongPtr
型に変換します。LongPtr 型は、環境に応じて 32 ビットまたは 64 ビットのポインタサイズの整数として扱われ、主に API 呼び出しなどでアドレスやポインタを扱う場合に使用されます。
例:
Dim ptrValue As LongPtr ptrValue = CLngPtr(12345) ' 数値をポインタ型に変換
※ 実際のアプリケーションでは、オブジェクトのアドレスや API との連携に利用するケースが多いです。
CCur関数: Currencyへの変換
CCur関数は、与えられた式を Currency
型に変換します。Currency 型は、金額などの固定小数点数を扱う際に使用され、4 桁の小数部分を持ちます。計算の際に丸め誤差が生じにくいという特徴があります。
例:
Dim money As Currency money = CCur(123.4567) ' 結果は 123.4567 money = CCur("1000.50") ' 文字列から Currency への変換(結果は 1000.5)
CDec関数: Decimalへの変換
CDec関数は、与えられた式を Decimal
型に変換します。Decimal 型は、非常に高い精度が必要な計算(たとえば金融計算など)で利用されますが、VBA では Variant 型のサブタイプとして扱われます。そのため、変数を宣言する際は Variant 型で宣言し、CDecで値を変換します。
例:
Dim decValue As Variant decValue = CDec(123.456789) ' 高精度の数値として扱える
※ Decimal 型は、通常の宣言方法では直接宣言できず、Variant 型内で利用される点に注意してください。
CSng関数: Singleへの変換
CSng関数は、与えられた式を Single
型、すなわち単精度浮動小数点数に変換します。Single 型は、CDbl に比べて精度が低いですが、メモリの使用量が少なく済むため、軽量な計算には向いています。
例:
Dim sValue As Single sValue = CSng(3.14159) ' 結果は 3.14159(単精度浮動小数点数)
CDbl関数: Doubleへの変換
CDbl関数は、与えられた式を Double
型、すなわち倍精度浮動小数点数に変換します。Double 型は Single 型よりも精度が高く、より正確な計算が必要な場合に使用されます。
例:
Dim dValue As Double dValue = CDbl(3.14159265358979) ' 高精度な数値として扱える
CDate関数: Dateへの変換
CDate関数は、与えられた式を Date
型に変換します。Date 型は、日付や時刻を扱うためのデータ型で、文字列や数値(日付シリアル値)から変換することができます。
例:
Dim dt As Date dt = CDate("2025/02/13") ' 文字列から日付に変換 dt = CDate(44561) ' 日付シリアル値から Date に変換(環境により基準日は異なります)
※ 日付の書式はシステムのロケール設定に依存する場合があるので、注意が必要です。
CStr関数: Stringへの変換
CStr関数は、与えられた式を String
型に変換します。数値、Boolean、日付など、さまざまな型の値を文字列に変換して、文字列操作や表示に利用する際に便利です。
例:
Dim strValue As String strValue = CStr(123) ' 数値 123 を "123" に変換 strValue = CStr(True) ' Boolean True を "True" に変換 strValue = CStr(CDate("2025/02/13")) ' 日付を文字列に変換
CVar関数: Variantへの変換
CVar関数は、与えられた式を Variant
型に変換します。Variant 型は、どんなデータ型も保持できる柔軟な型であり、必要に応じて他の型へと変換可能です。明示的に Variant 型に変換することで、後続の処理で型に依存しない操作が行えるようになります。
例:
Dim varValue As Variant varValue = CVar(3.14) ' 数値 3.14 を Variant 型に変換 varValue = CVar("Hello") ' 文字列 "Hello" を Variant 型に変換
以上が、VBAにおける主要な型変換関数の詳しい解説です。各関数は、プログラム内でデータ型を統一し、意図した処理を正確に行うための重要なツールとなります。プログラミング初心者の方は、これらの関数を活用して、データの変換や型チェックの方法を学んでいくとよいでしょう。