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

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

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

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

Nothingキーワード

名称Nothingキーワード
説明
オブジェクト変数にオブジェクトの参照情報が代入されていない状態を表します。

オブジェクトの参照情報とは、PCのメモリ内で、そのオブジェクトがどこに格納されているかを示す情報であり、住所のようなものです。

オブジェクトの参照情報が代入されていない状態とは、オブジェクトの住所が格納されていないため、そのオブジェクトを参照できない状態ということになります。

使い終わったオブジェクト変数にNothingを代入することで、オブジェクトへの参照を明示的に解除できます。

また、Findメソッドで検索値のセルが見つからなかった場合の戻り値は、Nothingです。
書式
【オブジェクト変数を破棄】
Set 変数名 = Nothing

【オブジェクト変数に格納されている値がNothingか判定】
If 変数名 Is Nothing Then
    処理
End If
コード例①
【オブジェクト変数の破棄】
Sub Macro1()
    'オブジェクト変数の宣言
    Dim wb As Workbook

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

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

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

使い終わったオブジェクト変数wbにNothingを代入し、オブジェクトへの参照を明示的に破棄しています。
コード例②
【Findメソッドの戻り値をIfステートメントで判定】
Sub Macro2()
    Dim cell As Range

    'Findメソッドで「メロン」を検索
    Set cell = Range("A1:A4").Find(What:="メロン", Lookat:=xlWhole)
    
    '検索値が見つからない場合はNothingが格納される
    If cell Is Nothing Then
        MsgBox "メロンはありません"
    End If
End Sub

Findメソッドで、アクティブシートのセル範囲A1:A4で「メロン」を検索します。

検索値が見つからない場合は、オブジェクト変数cellにNothingが格納されます。

Ifステートメントで、オブジェクト変数cellの値がNothingかを判定します。

<変数cellの値がNothingの場合>
「メロンはありません」のメッセージボックスが表示されます。

マクロを実行すると、アクティブシートのセルが以下の場合、「メロンはありません」のメッセージボックスが表示されます。
A
1 リンゴ
2 バナナ
3 イチゴ
4 ブドウ
カテゴリスタンダード