シート見出しに表示されるシートの名前を設定してみましょう。
シートの名前を操作するには、シートのNameプロパティを使います。次のコードはSheet1の名前を現在の時刻に変更します。
Sub Sample02()
Sheets("Sheet1").Name = Format(Now, "hh時mm分ss秒")
End Sub
新しいシートの名前に、既存のシート名と同じ名前を設定することはできません。ひとつのブックに[Sheet1]が複数存在することは許されないのです。これから設定しようとしているワークシート名が、すでに他のシート名として使われているかどうか調べるには、すべてのシート名を次のようにチェックします。
Sub Sample02_2()
Dim s As Variant, flag As Boolean
For Each s In Sheets
If s.Name = "Sheet2" Then
flag = True
Exit For
End If
Next s
If flag = True Then
MsgBox "Sheet2はすでに使われています。"
Else
ActiveSheet.Name = "Sheet2"
End If
End Sub
Sample02_2では、For Eachステートメントですべてのシート名について「Sheet2」かどうかを調べて、もしSheet2という名前があったら変数flagにTrueを代入しています。
または、もっと単純にエラーを回避したいだけなら、次のように済ますことも可能です。
Sub Sample02_3()
On Error Resume Next
ActiveSheet.Name = "Sheet2"
End Sub
On Error Resume Nextは、エラーが発生しても無視して次に進みなさい、という命令です。もし、すでに[Sheet2]が存在する場合「ActiveSheet.Name = "Sheet2"」はエラーになります。なりますが、そのエラーは無視されるのですから、結果的に何も起こりません。