Excel VBA でシートの名前を取得する場合は、Name プロパティを使用します。ここでは、Name プロパティの使い方について説明します。
Name プロパティの使い方
シート名を取得する構文は以下の通りです。
1 |
対象のシート.Name |
Name プロパティを参照することでシート名の文字列を取得することができます。
シート名を取得する
以下は、シート名を取得する例です。
1 2 3 |
Dim sheetName As String sheetName = Worksheets(1).Name ' 1番目のシート名を取得 MsgBox sheetName |
上のプログラムを実行すると先頭のシート名が表示されます。
アクティブなシート名を取得する
以下は、アクティブなシートの名前を取得する例です。
1 2 3 |
Dim sheetName AS String sheetName = ActiveSheet.Name MsgBox sheetName |
アクティブなシートは ActiveSheet で取得できます。
すべてのシート名を取得する
以下は、すべてのシート名を取得する例です。
1 2 3 4 |
Dim i As Long For i = 1 To Worksheets.Count Cells(i, 1) = Worksheets(i).Name Next |
このプログラムでは For Next 文を使用して、A列にシート名を繰り返し取得し設定しています。Worksheets.Count は存在するシートの個数を取得するものです。
シート名を変更する
以下は、先頭のシート名を「売上データ」に変更する例です。
1 |
Worksheets(1).Name = "売上データ" |
この例では Worksheets の引数にシートのインデックス番号を指定することで、シートを取得しています。
また、シート名を指定してシートを取得し、そのシートの名前を変更することもできます。
1 |
Worksheets("sheet2").Name = "販売データ" |
この例では「sheet2」のシート名が「販売データ」に変更されます。
セルの値をシート名にする
以下は、セルに入力された値をシート名に設定する例です。
1 |
Worksheets(1).Name = Cells(1, 1) |
A1に「商品データ」という文字列がに入力されている状態で実行すると、その文字列が先頭のシート名になります。
シート名に日付を設定する
以下は、シート名に日付を設定する例です。
1 |
Worksheets(1).Name = "売上データ" & Format(Date, "yyyymmdd") |
上のプログラムを実行すると、先頭のシート名が「売上データ20160826」のような名前に変更されます。今日の日付は Date で取得し、Format で日付の表示を yyyymmdd 形式に設定しています。