シート名はNameプロパティで管理
シート名は各種シートオブジェクト(Worksheet、Chart、DialogSheet)のNameプロパティで管理されています。
シート名の取得と設定のどちらもNameプロパティで行います。
シート名の取得を行うコードと設定を行うコードをそれぞれ紹介します。
シート名の取得
以下のコードでは2つ関数がありますが、1つ目のGetSheetName関数は指定したワークシートのシート名を取得する関数で、2つ目のGetSheetNameTest関数はシート名取得のテストコードです。
アクティブシートを指すActiveSheetオブジェクトを使ってWorksheetオブジェクトのNameプロパティを参照しています。
1 2 3 |
Sub GetSheetName(wk As Worksheet, shtName) shtName = wk.Name End Sub |
1 2 3 4 5 6 |
Sub GetSheetNameTest() Dim shtName Call GetSheetName(ActiveSheet, shtName) Debug.Print shtName End Sub |
実行結果
Sheet1(新規ブックの初期状態のままの場合)
シート名の設定
シート名の取得と同様にNameプロパティに対してシート名を設定します。
以下のコードの1つ目の関数が引数のshtName変数の値でシート名を設定する関数です。2つ目の関数はテストコードです。
1 2 3 |
Sub SetSheetName(wk As Worksheet, shtName) wk.Name = shtName End Sub |
1 2 3 4 5 6 7 |
Sub SetSheetNameTest() Dim shtName Debug.Print ActiveSheet.Name Call SetSheetName(ActiveSheet, ActiveSheet.Name & "a") Debug.Print ActiveSheet.Name End Sub |
実行結果
Sheet1(新規ブックの初期状態のままの場合)
Sheet1a
シート名設定時の注意点
シート名を設定する際にはいくつかの決まりがあります。これはExcelの仕様です。
- 1文字以上、31文字以内であること。
- 全角半角に関わらず、コロン(:)、円記号(\)、スラッシュ(/)、疑問符(?)、アスタリスク(*)、左角括弧([)、右角括弧(])が設定できない。
- 同じブック内で同じシート名は設定できない。
これらに抵触した場合は以下のエラーが発生します。