VBAでシートの名前を変更する

Worksheet.Nameプロパティ

ワークシートのシート名はWorksheetオブジェクトのNameプロパティで設定や取得を行います。

Nameプロパティを設定すると直後にブックのシートタブに反映されます。

グラフシート(Chartオブジェクト)やダイアログシート(DialogSheetオブジェクト)もNameプロパティで設定、変更を行いますが、一般的には利用されることはないため、以降は主にWorksheetオブジェクトにて説明します。

構文

Property Worksheet.Name As String

取得と設定のいずれもNameプロパティを利用します。

シート名設定時の制約

シート名を設定する際にはいくつかの決まりがあります。これはExcelの仕様です。

  • 1文字以上、31文字以内であること。
  • 全角半角に関わらず、コロン(:)、円記号(\)、スラッシュ(/)、疑問符(?)、アスタリスク(*)、左角括弧([)、右角括弧(])が設定できない。
  • 同じブック内で同じシート名は設定できない。

これらに抵触した場合は以下のエラーが発生します。

シート名の取得と変更のサンプルコード

シート名の取得を行い、その後、設定を行うサンプルです。

設定するシート名が既に存在しているか確認する方法

上記の制約のとおり、同じブックに同じシート名を設定することは出来ません。

そこで同じシート名が存在するかを事前に確認したい場合があります。

以下の関数は引数のシート名が存在する場合はTrue、存在しない場合はFalseを返します。

7行目でSheetsコレクションを利用していますが、ほとんどの場合はWorksheetsコレクションでも構いません。

SheetsとWorksheetsの違いはSheetsは全ての種類をシートを管理していますが、Worksheetsはワークシートのみを管理しています。詳細は「VBAのSheetsとWorksheetsの違い」をご参照ください。

関連記事

サブコンテンツ

このページの先頭へ