シートが存在しているかどうか確認する関数。

タイトルのマクロは、以下です。

この関数は、指定したシート名が既に存在するかどうかを確認し、存在する場合は True を返します。

'*************************
'* シートが存在しているかどうか確認する関数。存在する場合は、Trueを返す
'* shetName:調べたいシート名を指定
'* book:調べたいワークブックを指定
Function ExistSheet(ByVal sheetName As String, ByVal book As Workbook) As Boolean
    Dim ws As Worksheet, flag As Boolean
    ' すべてのワークシートを表す Worksheets コレクションからひとつずつ
    ' Worksheetを取り出して、名前を確認します。
    For Each ws In book.Worksheets
        If ws.Name = sheetName Then flag = True
    Next ws
    
    ExistSheet = flag
End Function
  1. シート名のチェック:
    • For Each ws In book.Worksheets で、すべてのシートをループし、シート名が一致するかどうかを確認します。
    • 一致する場合は flagTrue に設定します。
  2. 結果の返却:
    • ExistSheet = flag により、シートが存在するかどうかの結果を返します。

以下が使用例です。

Private Sub 使用例()
    Dim flag As Boolean
    flag = ExistSheet("リスト", ThisWorkbook)
    If flag = True Then
        MsgBox "シート「リスト」があります", vbInformation
    Else
        MsgBox "シート「リスト」はありません", vbInformation
    End If
End Sub

このマクロを実行すると、このマクロの入っているブックの中に、シート「リスト」があるかどうか確認し、メッセージボックスで表示されます。

Follow me!