HOME > 即効テクニック > Excel VBA > > 特定の文字列を含むシートの存在を判定する

特定の文字列を含むシートの存在を判定する|Excel VBA

シート関連のテクニック

特定の文字列を含むシートの存在を判定する

(Excel 2000/2002/2003/2007/2010)

存在しないワークシートを参照しようとするとエラーになることを利用して、「TEST」という名前のワークシートが存在するかどうかを判定します。グラフシートやモジュールシートは判定されません。

●サンプル1●

Sub Sample1()
    Dim mySht As Worksheet

    On Error GoTo ErrHdl
    Set mySht = Worksheets("Test")
    MsgBox "シート""Test""は存在します。"
    Exit Sub
    
ErrHdl:
    MsgBox "シート""Test""は存在しません。", vbExclamation
End Sub

次のサンプル2は、「Bkup」という文字列を含むワークシートがあるかどうかを、For Each...NextステートメントとInStr関数を使ってチェックします。シート名の大文字/小文字、全角/半角およびひらがな/カタカナの区別をしないでチェックする場合は、InStr関数の引数Compareにテキストモード(vbTextCompare)を指定します。

●サンプル2●

Sub Sample2()
    Dim myWS As Worksheet
    Dim myFlag As Boolean

    myFlag = False

    For Each myWS In Worksheets
        If InStr(myWS.Name, "Bkup") > 0 Then
            myFlag = True
            Exit For
        End If
    Next

    If myFlag = True Then
        MsgBox "「Bkup」を含むシートがあります"
    Else
        MsgBox "「Bkup」を含むシートはありません"
    End If
End Sub