pgbigorokuのブログ

プログラムの再利用できそうなコードをアップ

EXCEL VBA 指定したワークシート名が存在するか確認


サンプル

Public Sub sample()
    Debug.Print pniblnIsExsistWorksheet("Sheet1")  'TRUE
    Debug.Print pniblnIsExsistWorksheet("BOOK1")    'FALSE
    Debug.Print pniblnIsExsistWorksheet("Sheet2",True)  'TRUE(Sheet2は非表示のシート)
    Debug.Print pniblnIsExsistWorksheet("Sheet2",False)  'FALSE(Sheet2は非表示のシート)
End Sub

ソースコード

'
'  指定したワークシート名が存在するか確認
'
'ByVal pstrWorksheetname As String  検索したいシート名
'Optional ByVal pbln非表示シートを含む As Boolean = True
'
'https://pgbigoroku.hatenablog.com/entry/2022/07/28/105756
'2022/8/15 公開
'2022/8/18 pbln非表示シートを含む追加
Public Function pniblnIsExsistWorksheet(ByVal pstrWorksheetname As String, _
                        Optional ByVal pbln非表示シートを含む As Boolean = True) As Boolean
    Dim shtTarget As Worksheet
    For Each shtTarget In ActiveWorkbook.Sheets
        If shtTarget.Name = pstrWorksheetname Then
            If shtTarget.Visible = True Then
                pniblnIsExsistWorksheet = True
                Exit Function
            Else
                If pbln非表示シートを含む = True Then
                    pniblnIsExsistWorksheet = True
                    Exit Function
                Else
                    pniblnIsExsistWorksheet = False
                    Exit Function
                End If
            End If
        End If
    Next
    pniblnIsExsistWorksheet = False
End Function