ワークシートのインデックス(Index プロパティ)

Index プロパティは Worksheets コレクション内における各オブジェクトのインデックス番号を表しており、この番号はワークブック内のシートの並び順(左から右)となっています。このプロパティは値の取得のみ可能で、シートの追加・削除・移動を行うと自動的に番号が変更されます。

構文
object.Index

※objectはワークシートオブジェクトを表す変数

スポンサーリンク

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ステートメント

sample_eb076_01 実行前
sample_eb076_01 実行前

マクロを実行すると、シートの追加前後で同一のシートでもインデックス番号が変わっていることがわかります。

sample_eb076_01 実行後
sample_eb076_01 実行後
  • マクロ実行結果(イミディエイトウィンドウ
    <シート追加前>
    INDEX = 1     NAME = AAA
    INDEX = 2     NAME = BBB
    INDEX = 3     NAME = CCC
    <シート追加後>
    INDEX = 1     NAME = Sheet1
    INDEX = 2     NAME = AAA
    INDEX = 3     NAME = BBB
    INDEX = 4     NAME = CCC
タイトルとURLをコピーしました