名前を設定する


シート見出しに表示されるシートの名前を設定してみましょう。

シートの名前はNameプロパティ

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