指定の名前のワークシートがなければ作成するマクロ

次の2つのFunctionを組み合わせれば良い。

' 指定の名前のワークシートが存在するかどうか
Function isExistingSheetName(sheetname As String) As Boolean
    Dim ws As Worksheet
    Dim flag As Boolean
    
    
    '現在のシートを記憶
    Set recentSheet = ActiveSheet
    
    For Each ws In Worksheets
        If ws.name = sheetname Then flag = True
    Next ws
    
    
    '元のシートに戻る
    recentSheet.Select
    
    If flag = True Then
        isExistingSheetName = True
    Else
        isExistingSheetName = False
    End If
End Function


'指定の名前のワークシートを作成
Function newWorksheet(name As String) As Boolean
    Dim ws As Worksheet
    Set ws = ActiveWorkbook.Sheets.Add
    ws.name = name
    newWorksheet = True
End Function

例えば

    '指定の名前のワークシートがなければ新規作成
    SheetName = "hoge"
    If isExistingSheetName(SheetName) = False Then
        result = newWorksheet(SheetName)
    End If