VBA でシートが存在するかどうかを確認する

Iqra Hasnain 2023年1月30日
  1. VBA でシートが存在するか確認する
  2. VBA のクローズドワークブックにシートが存在するかどうかを確認する
VBA でシートが存在するかどうかを確認する

Excel で VBA を使用してシートが存在するかどうかを確認する方法を紹介します。

VBA でシートが存在するか確認する

複数のシートで作業しているときに、重複するシートがいくつかある場合や、重複するシートを作成しないようにする場合があります。この目的のために、VBA を使用して、シートを作成する可能性のある同じ名前のシートがあるかどうかを確認できます。

シートが存在するかどうかを確認するには、ワークブックの各シートと一緒にループを作成し、作成した名前を比較する必要があります。2つのループを使用します。1つは For each loop になり、2つ目は If Else ステートメントになります。

最初に、2つの変数を作成します。1つはワークシートを保存し、もう 1つは重複を探すシートの名前を保存するか、この名前のシートが存在するかどうかを確認します。for ループを使用してフォルダ内のすべてのファイルを調べ、if-else ステートメントを使用して、シートの名前が他のシートと同じ名前で存在するかどうかを確認します。

同じ名前のファイルが存在する場合は、シートが存在することを示すメッセージボックスが表示されます。それ以外の場合は、シートが存在しないことを示すメッセージボックスが表示されます。

コード:

#VBA
Sub sheetCheck()

Dim sheet As Worksheet
Dim Name As String

Name = "Sheet1"

For Each sheet In ThisWorkbook.Worksheets

    If sheet.Name = Name Then

            MsgBox "Yes! " & Name & " is there in the workbook."
            Exit Sub

    End If

Next sheet

MsgBox "No! " & Name & "is not there in the workbook."

End Sub

出力:

チェックシートの有無

sheet1 を検索したところ、同じ名前のシートが既に存在するという肯定的な反応がありました。

VBA のクローズドワークブックにシートが存在するかどうかを確認する

閉じられている、またはすでに作業を行っている Excel ファイルのシートを確認したい場合もあります。上記の例で使用したように、VBA を使用してファイルを開き、If else ステートメントを使用して For each ループを開くことにより、閉じた Excel ファイルのシートを確認することもできます。

閉じた Excel ファイルでシートを確認してみましょう。

コード:

#VBA
Sub checkSheet()

Dim book As Workbook
Dim sheet As Worksheet
Dim Name As String

Name = "Sheet1"

Application.ScreenUpdating = False

Set book = Workbooks.Open _
("C:\Users\Hp9470\Documents\Book2.xlsx")

For Each sheet In book.Worksheets

    If sheet.Name = Name Then

        book.Close SaveChanges:=True
        MsgBox "Yes! Sheet Exists"
        Exit Sub

    End If

Next sheet

Application.ScreenUpdating = False

MsgBox "No! Sheet doesn't exists"

End Sub

出力:

チェックシートが閉じたエクセルシートに存在するかどうか

このシートは、open 関数を使用してアクセスした closedexcel ファイルに存在します。このようにして、名前の方法を使用して、シートに関する開いているファイルと閉じているファイルの両方を確認できます。