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