【用語集に記載の内容について】

用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。 また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。

【コードをコピーして実行する場合の注意】

文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。

オブジェクト変数

名称オブジェクト変数
説明
ワークシート、セル、ブックなどのオブジェクトを格納するための変数です。

オブジェクト変数は、格納したオブジェクトの持つプロパティやメソッドを使用することができます。

例えば、オブジェクト変数にセルを格納した場合、セルのValueプロパティやSelectメソッドを使用できます。
書式
【オブジェクト変数の宣言】
Dim 変数名 As 型

型:変数に格納するオブジェクトを格納できる型を指定

<指定できる型の例>
Range:セルを格納する型
Worksheet:ワークシートを格納する型
Workbook:ブックを格納する型
Object:すべてのオブジェクトを格納できる型
Variant:すべてのデータを格納できる型 

【オブジェクト変数にオブジェクトを格納】
Set 変数名 = オブジェクト

オブジェクト変数にオブジェクトを格納するときは、Setステートメントを使用します。

【オブジェクト変数を破棄】
Set 変数名 = Nothing

Nothingは、オブジェクト変数がどのオブジェクトも参照していない状態を表すキーワードです。

VBAでは、プロシージャが終了するとプロシージャ内で宣言したローカル変数と同様に、オブジェクト変数も破棄されます。

しかし、何らかのトラブルでオブジェクト変数が破棄されず、メモリ上に残ってしまう不測の事態を避けるため、使い終わったオブジェクト変数は、Nothingキーワードを代入して明示的に破棄することができます。
コード例①
Sub Macro1()
    'オブジェクト変数の宣言
    Dim wb As Workbook

    ' アクティブブックをオブジェクト変数に代入
    Set wb = ActiveWorkbook

    ' アクティブブックの名前を表示
    MsgBox wb.Name
    
    'オブジェクト変数を破棄
    Set wb = Nothing
End Sub

オブジェクト変数wbには、アクティブブックが格納されています。

「wb.Name」は、ブックのNameプロパティを使用して、アクティブブックの名前を取得しています。

マクロを実行すると、アクティブブックの名前が「Book1.xlsx」の場合、「Book1.xlsx」のメッセージボックスが表示されます。

使い終わったオブジェクト変数wbをNothingキーワードを使用し、明示的に破棄しています。
カテゴリスタンダード