Excel VBAでは、シートのName
プロパティを使うことで、簡単にシート名を変更することができます。
本記事では、シート名を変更する基本方法から、エラー対策、複数シートを一括変更する方法まで解説します。
1. 特定のシート名を変更する
シート名を変更するには、以下のように Worksheets("旧シート名").Name = "新シート名"
と指定します。
Sub RenameSheet()
Worksheets("Sheet1").Name = "Data"
End Sub
この例では、**「Sheet1」**という名前のシートを **「Data」**に変更します。
2. アクティブシートの名前を変更する
現在アクティブになっているシートの名前を変更したい場合は、ActiveSheet.Name
を使います。
Sub RenameActiveSheet()
ActiveSheet.Name = "Report"
End Sub
3. シート名変更時の注意点
シート名を変更する際、以下のルールに違反するとエラーが発生します。
- 31文字を超える名前は設定できない
\ / ? * [ ] :
など一部の記号は使用できない- 同じ名前のシートが既に存在するとエラーになる
4. エラー対策付きのコード例
同名シートが存在しないか事前に確認してから名前を変更する例です。
Sub SafeRenameSheet()
Dim newName As String
newName = "Data"
If SheetExists(newName) Then
MsgBox "シート名「" & newName & "」は既に存在します。"
Else
ActiveSheet.Name = newName
End If
End Sub
'シート名が存在する関数
Function SheetExists(ByVal sheetName As String) As Boolean
On Error Resume Next
SheetExists = Not Worksheets(sheetName) Is Nothing
On Error GoTo 0
End Function
5. 複数シートを一括でリネームする
複数のシート名を自動で「シート1」「シート2」のように連番で変更したい場合は、以下のコードを使用します。
Sub RenameSheetsWithNumber()
Dim ws As Worksheet
Dim i As Long
i = 1
For Each ws In Worksheets
ws.Name = "シート" & i
i = i + 1
Next ws
End Sub
6. まとめ
Worksheets("旧名").Name = "新名"
で簡単に名前を変更可能- シート名は31文字以内、禁止文字あり
- 同名シートがあるとエラーになるため、事前チェックを推奨
- 複数シートもループ処理で一括変更できる
コメント