教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでオブジェクトを比較する方法

構文

構文は以下の通りです。

オブジェクト1 Is オブジェクト2

解説

「Is」を使って2つのオブジェクトが同じかどうかを比較することができます。「オブジェクト1」と「オブジェクト2」が同じものであれば、結果は「True」になり、異なるものであれば、結果は「False」になります。この比較はオブジェクトの内容ではなく、オブジェクト自体が同一かどうかを確認するために使用されます。

プログラミング例

具体的なプログラミング例を紹介します。

Sub オブジェクト比較例()
    Dim シート1 As Worksheet
    Dim シート2 As Worksheet
    ' シート1にSheet1を設定
    Set シート1 = ThisWorkbook.Sheets("Sheet1")
    ' シート2にSheet2を設定
    Set シート2 = ThisWorkbook.Sheets("Sheet2")
    ' シート1とシート2が同じかどうかを比較
    If シート1 Is シート2 Then
        MsgBox "シート1とシート2は同じオブジェクトです"
    Else
        MsgBox "シート1とシート2は異なるオブジェクトです"
    End If
  ' シート2にSheet1を再設定
    Set シート2 = ThisWorkbook.Sheets("Sheet1")
    ' 再度シート1とシート2が同じかどうかを比較
    If シート1 Is シート2 Then
        MsgBox "シート1とシート2は同じオブジェクトです"
    Else
        MsgBox "シート1とシート2は異なるオブジェクトです"
    End If
End Sub

上記のプログラムは、2つのワークシートオブジェクトを比較し、「同じオブジェクトか」「異なるオブジェクトか」を表示します。

まとめ

オブジェクトを比較するためには「Is」を使用します。この方法を使うと、2つのオブジェクトが同じものであるかどうかを確認することができます。内容ではなくオブジェクト自体を比較するために非常に有用です。