VBAのCVar関数:値をVariant型に変換する方法

VBAのCVar関数は、指定した値を Variant型(汎用型) に変換する関数です。
Variant型は 数値・文字列・日付・オブジェクトなど、あらゆるデータ型を格納できる 柔軟な型です。


1. CVarの基本構文

Dim varValue As Variant
varValue = CVar(値)

「値」 に指定したデータを Variant型 に変換します。


2. CVarの特徴

  • あらゆるデータ型をVariant型に変換できる
  • もともとVariant型のデータはそのまま保持される
  • データの型が固定されず、必要に応じて自動変換される
  • 特定のデータ型に制限されず、柔軟な処理が可能になる

3. CVarの使用例

① 数値をVariant型に変換

Dim varValue As Variant
varValue = CVar(123)
MsgBox TypeName(varValue) ' "Integer" と表示

数値をVariant型に格納すると、内部的には元の型(Integer)を維持

② 文字列をVariant型に変換

varValue = CVar("Hello")  
MsgBox TypeName(varValue) ' "String" と表示

文字列もVariant型に格納されるが、内部ではString型として扱われる

③ 日付をVariant型に変換

varValue = CVar(#2025/02/25#)  
MsgBox TypeName(varValue) ' "Date" と表示

👉 日付データもVariant型に格納されるが、内部ではDate型として動作する

④ Variant型は型を自動で切り替える

varValue = CVar(100)       ' 数値を代入
MsgBox TypeName(varValue) ' "Integer"

varValue = "ABC" ' 文字列を代入
MsgBox TypeName(varValue) ' "String"

Variant型は代入されたデータによって型が変わる!


4. CVarを使う場面

  • 変数の型を固定せずに、汎用的に使いたいとき
  • 関数の戻り値として、複数の型を扱いたいとき
  • 異なる型のデータをまとめて処理したいとき

5. まとめ

  • CVar は 数値・文字列・日付などをVariant型に変換する関数
  • Variant型はどんなデータ型も格納できるが、内部では元の型を保持する
  • 代入する値によって型が変わるため、柔軟な処理が可能
  • 特定の型に固定しない場合に便利だが、処理速度やメモリ使用量に注意

データ型を柔軟に扱いたいときは、CVar を活用しましょう!

コメント

タイトルとURLをコピーしました