この記事ではCVar関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。
CVar関数の使い方と注意点
CVar関数は、数値や文字列をVariant型に変換する関数です。
Variant型はVBAで最も柔軟なデータ型で、数値・文字列・日付などを格納できるため、汎用的に利用されます。
ただし、柔軟さの反面、メモリ消費が大きく、処理速度も遅くなるため、乱用には注意が必要です。
構文
CVar(式)
- 式 : 変換したい数値や文字列、日付など
- 戻り値 : Variant型の値
使用例
数値をVariant型に変換
Sub Sample()
Dim value As Integer
Dim result As Variant
value = 123
result = CVar(value)
Debug.Print result
Debug.Print TypeName(result)
End Sub
▶ 出力結果
123
Integer
CVar関数はVariant型を返す関数です。
ただし、Variantには「サブタイプ」があり、実際の値の種類によってサブタイプが決まります。
・数値を渡すと → Variant (Integer / Long / Double などのサブタイプ)
・文字列を渡すと → Variant (String サブタイプ)
・日付を渡すと → Variant (Date サブタイプ)
TypeName関数はVariant型のサブタイプを返すためVariantという出力にはなりません。
小数をVariant型に変換
Sub Sample()
Dim value As Double
Dim result As Variant
value = 123.456
result = CVar(value)
Debug.Print result
Debug.Print TypeName(result)
End Sub
▶ 出力結果
123.456
Double
文字列をVariant型に変換
Sub Sample()
Dim strValue As String
Dim result As Variant
strValue = "Hello"
result = CVar(strValue)
Debug.Print result
Debug.Print TypeName(result)
End Sub
▶ 出力結果
Hello
String
日付をVariant型に変換
Sub Sample()
Dim strDate As Date
Dim result As Variant
strDate = "2025/08/20"
result = CVar(strDate)
Debug.Print result
Debug.Print TypeName(result)
End Sub
▶ 出力結果
2025/08/20
Date
⚠️注意
柔軟だが非効率
Variant型はあらゆるデータを保持できる反面、他の型よりもメモリ消費が多く、処理速度も遅くなるため、
数値や文字列など用途が明確な場合は、適切な型(Long, Double, Stringなど)を使用しましょう。
その他のVBA関数
【Excel VBA】VBAでよく使う関数一覧&基本の使い方