Excel VBA Variant型はすべてのデータ型を格納できる汎用的なデータ型

 

Excel VBA Variant型は、Excel VBAで利用可能なすべてのデータ型を格納できる汎用的なデータ型です。これは、数値、文字列、日付、配列、オブジェクトなど、さまざまな型のデータを一つの変数で扱いたい場合に便利です。具体的な使い方や、注意点やサンプルコードを紹介します。

 

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

 

Excel VBA Variantを利用

以下のようなシーンで利用されます。

・データの型が事前に不明な場合

・同一変数に異なる型のデータを格納する必要がある

・関数の引数として複数の型のデータを受け取りたい

 

Excel VBA Variantを利用|使い方とポイント

使い方

・宣言:Dim variable As Variant

・利用例: 数値、文字列、配列、オブジェクトなど、さまざまな型のデータを格納する

 

ポイント

・Variant型は、他の具体的なデータ型に比べてメモリを多く消費します。そのため、大量のデータを扱う場合はパフォーマンスに影響が出ることがあります。

・Variant型を多用すると、データ型の明示的なチェックを行わないため、予期せぬ動作が発生する可能性があります。

 

Excel VBA Variantのサンプルコード

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

数値、文字列、日付を格納する
Option Explicit

Sub VariantExample()
    Dim varData As Variant

    ' 数値を格納
    varData = 123
    MsgBox "数値: " & varData

    ' 文字列を格納
    varData = "Hello, World!"
    MsgBox "文字列: " & varData

    ' 日付を格納
    varData = Date
    MsgBox "日付: " & varData
End Sub

配列を格納する

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の資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!