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 は存在するシートの個数を取得するものです。

vba_name

シート名を変更する

以下は、先頭のシート名を「売上データ」に変更する例です。

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 形式に設定しています。


イベント