重複しないシート名を取得する
同じブック内で重複しないシート名を取得する関数です。
指定したシート名の末尾に(1)、(2)、(3)、…とつけていき、重複しなかったシート名を取得します。
例:Sheet1 (2)、Sheet1 (3)
引数 SheetName:チェックするシート名
戻り値 重複しないシート名
備考 末尾の値は10までチェックします。尚、「For i = 2 To 10」で10の値を変更すれば、より多くのチェックができるようになります。
Public Function getUniqueName(ByVal SheetName As String) As String
Dim newSheetName As String
For i = 2 To 10
Dim ws As Worksheet
Dim flg As Boolean: flg = False
'シート名を設定
newSheetName = SheetName & " (" & i & ")"
'そのシートがあるか探す
For Each ws In Sheets
If ws.Name = newSheetName Then
flg = True
Exit For
End If
Next
If flg = False Then
'設定したシート名が見つからなければリターン
getUniqueName = newSheetName
Exit Function
End If
Next
End Function
実行例
Debug.Print getUniqueName("Sheet1")
' Sheet1 (3)