
Excel VBA Variant型は、Excel VBAで利用可能なすべてのデータ型を格納できる汎用的なデータ型です。これは、数値、文字列、日付、配列、オブジェクトなど、さまざまな型のデータを一つの変数で扱いたい場合に便利です。具体的な使い方や、注意点やサンプルコードを紹介します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
Excel VBA Variantを利用
以下のようなシーンで利用されます。
・データの型が事前に不明な場合
・同一変数に異なる型のデータを格納する必要がある
・関数の引数として複数の型のデータを受け取りたい
Excel VBA Variantを利用|使い方とポイント
・宣言:Dim variable As Variant
・利用例: 数値、文字列、配列、オブジェクトなど、さまざまな型のデータを格納する
・Variant型は、他の具体的なデータ型に比べてメモリを多く消費します。そのため、大量のデータを扱う場合はパフォーマンスに影響が出ることがあります。
・Variant型を多用すると、データ型の明示的なチェックを行わないため、予期せぬ動作が発生する可能性があります。
Option Explicit
Sub VariantExample()
Dim varData As Variant
' 数値を格納
varData = 123
MsgBox "数値: " & varData
' 文字列を格納
varData = "Hello, World!"
MsgBox "文字列: " & varData
' 日付を格納
varData = Date
MsgBox "日付: " & varData
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
配列を格納する
Option Explicit
Sub VariantArrayExample()
Dim varArray As Variant
Dim i As Integer
' 配列を格納
varArray = Array(1, 2, 3, 4, 5)
' 配列の要素を表示
For i = LBound(varArray) To UBound(varArray)
MsgBox "配列の要素: " & varArray(i)
Next i
End Sub
オブジェクトを格納する
Option Explicit
Sub VariantObjectExample()
Dim varObject As Variant
Dim ws As Worksheet
' オブジェクトを格納
Set varObject = ThisWorkbook.Sheets("Sheet1")
' オブジェクトのプロパティを表示
MsgBox "シート名: " & varObject.Name
End Sub
・Dim varData As Variant
varDataをVariant型として宣言します。
・varData = 123
varDataに数値123を格納します。
・varData = "Hello, World!"
varDataに文字列 Hello, World! を格納します。
・varData = Date
varDataに現在の日付を格納します。
・varArray = Array(1, 2, 3, 4, 5)
varArrayに配列 Array(1, 2, 3, 4, 5)を格納します。
・Set varObject = ThisWorkbook.Sheets("Sheet1")
varObjectにシートオブジェクト Sheet1 を格納します。
このように、Variant型を使用することで、さまざまな型のデータを一つの変数で扱うことができますが、使用する際にはメモリ消費や予期せぬ動作に注意が必要です。
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。