私は、これはあなたが探しているものであるかどうかわからないんだけど、私は過去に同様の問題があったが、私は次のように使用しましたそれを解決する方法論。
Dim worksheetName As String
worksheetName = "Test 1"
worksheetNumber = 2
CheckName:
For Each ws in Sheets
' If the desired worksheet name exists
If ws.name = worksheetName Then
' Change the worksheetName to be Test x+1 and increment worksheetNumber
worksheetName = "Test " & worksheetNumber
worksheetNumber = worksheetNumber + 1
GoTo CheckName ' return to the CheckName label and start again
End If
Next ws
基本的に、私たちは現在のワークブック内のすべてのワークシートをループさやって、そしてそれらのいずれかが、我々が挿入するものと同じ名前を持っているかどうかをチェックされています。もしそうなら、私たちは名前を新しい名前に変更してもう一度チェックします。そうでなければ、私たちは新しい名前を持っています。
EDIT:あなたがそうのように、簡単に目的の名前を変更することができるようにまた、私は、引数としてシート名をとる関数の内部で上記のコードを置くことをお勧め:
Function worksheetName(desiredName As String) As String
Dim worksheetName As String
worksheetName = desiredName
' rest of code follows ...
End Function
そしてそれができますそう呼ばれる:
NewName = worksheetName("Test")