シート見出しに表示されるシートの名前を設定してみましょう。
シートの名前を操作するには、シートの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"」はエラーになります。なりますが、そのエラーは無視されるのですから、結果的に何も起こりません。