【VBA】型変換の関数一覧【実行例つき】

【VBA】型変換の関数一覧【実行例つき】

VBAの型変換関数の詳解

以下のリンクから各型変換関数の説明にジャンプできます。

CBool関数: Booleanへの変換

CBool関数は、指定した式 (expression) を Boolean 型に変換します。Boolean型は True または False の2つの値しか持たず、条件判断や論理演算において非常に重要です。一般的に、数値の 0False と評価され、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における主要な型変換関数の詳しい解説です。各関数は、プログラム内でデータ型を統一し、意図した処理を正確に行うための重要なツールとなります。プログラミング初心者の方は、これらの関数を活用して、データの変換や型チェックの方法を学んでいくとよいでしょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です