Index プロパティは Worksheets コレクション内における各オブジェクトのインデックス番号を表しており、この番号はワークブック内のシートの並び順(左から右)となっています。このプロパティは値の取得のみ可能で、シートの追加・削除・移動を行うと自動的に番号が変更されます。
Indexプロパティの使用例
以下のサンプルマクロは、シート追加の前後でプロシージャ printSheetNames を呼び出してシートのインデックス番号をイミディエイトウィンドウへ表示します。インデックス番号がどのように変わるかを確認してみましょう。
Sub sample_eb076_01()
Debug.Print "<シート追加前>"
Call printSheetNames(ActiveWorkbook)
'ワークシートを追加
Worksheets.Add
Debug.Print "<シート追加後>"
Call printSheetNames(ActiveWorkbook)
End Sub
'引数で指定されたブック内のシートを
'イミディエイトウィンドウへ表示するプロシージャ
'引数[1]:対象ワークブック
Private Sub printSheetNames(wb As Workbook)
Dim i As Integer
For i = 1 To wb.Worksheets.Count
With wb.Worksheets(i)
Debug.Print "INDEX = " & .Index, _
"NAME = " & .Name
End With
Next i
End Sub
イミディエイトウィンドウ ワークシートの追加
For…Next
Withステートメント
マクロを実行すると、シートの追加前後で同一のシートでもインデックス番号が変わっていることがわかります。