こんにちは、ユーキです。
今回は、シートの名前の変更方法を紹介します。
目次
シートの名前を変更する
シートのNameプロパティを設定することで、変更できます。
現在の選択中のシート名を変更する
選択中のシート(ActiveSheet)の変更する書き方は以下になります。
ActiveSheet.Name = "ユーキブログ"
指定したシートのシート名を変更する
シートを指定して名前を変更する場合も同じです。
ActiveWorkbook.Worksheets(1).Name = "変更1"
'シートの指定はシート名を指定することも可能です。
ActiveWorkbook.Worksheets("変更1").Name = "ユーキブログ"
シートは変数に代入していてもOKです。以下のような書き方をすることもできます。
Dim sh As Worksheet
Set sh = ActiveWorkbook.Worksheets(1)
sh.Name = "変更2"
こんなときはどうなる?
エラーが発生する状態を知っておきましょう。
すでに同じ名前がある
次のようなコードを書くと、2行目でエラーが発生します。
ActiveWorkbook.Worksheets(1).Name = "変更1"
ActiveWorkbook.Worksheets(2).Name = "変更1"
同じ名前を指定する可能性がある場合、「On Error」を使って、エラートラップをしておきましょう。
次のように書くと、エラーが発生した部分はスキップされます。
Private Sub SheetNameChage()
On Error Resume Next
ActiveWorkbook.Worksheets(1).Name = "変更1"
'同じ名前になるので、この処理はスキップされる
ActiveWorkbook.Worksheets(2).Name = "変更1"
ActiveWorkbook.Worksheets(1).Name = "変更2"
End Sub
エラーが発生した箇所で処理を中断して、ラベルに処理を飛ばすようにするには、次のように書きます。
Private Sub SheetNameChage()
On Error GoTo ErrLabel
ActiveWorkbook.Worksheets(1).Name = "変更1"
'同じ名前になるので、エラーが発生
ActiveWorkbook.Worksheets(2).Name = "変更1"
'この処理は実行されない
ActiveWorkbook.Worksheets(1).Name = "変更2"
Exit Sub
ErrLabel:
MsgBox "エラーが発生したので、処理を終了します"
End Sub
エラートラップについは、以下の記事を参考にしてください。
【Excel VBA】例外処理に対応|エラートラップ | ユーキブログ
こんにちは、ユーキです。 今日は、VBAのエラー処理(エラートラップ)について、お話したいと思います。 エラートラップとは 想定外の「予期せぬエラー」(ゼロで割り算し…
指定したシートが存在しない
存在しないシートを指定しても、エラーになります。
’ブックにシートが9までしかない場合、以下はエラーになる
ActiveWorkbook.Worksheets(10).Name = "変更1"
’存在しないシート名を指定しても、エラーになる
ActiveWorkbook.Worksheets("変更2").Name = "変更1"
まとめ
今回は、シートの名前の変更方法を紹介しました。
Point
- シートのNameプロパティを設定する
- すでに存在するシート名を指定すると、エラーになる
- 存在しないシートを指定すると、エラーになる
少しでもお役に立てば、幸いです。