◆◆MS-Excel2000スキルアップ講座/VBA編◆◆

マクロ例:シートの一覧表作成マクロ
シートの一覧表を作成するマクロです。
ThisWorkbookに以下のコードを追加して下さい。一覧表シートはsheet1を想定しています。

完全自動で反映できる操作は、シートの追加・削除です。

完全自動で反映できない操作は、(シートのセレクトし直しが必要)、シートの移動・名前の変更です。

Workbook_NewSheetで実行するだけにすれば、動作がうるさくないですが、反映できる操作がシートの追加だけになってしまいます。

実用的にはもっと単純に一覧表シートの、Worksheet_Activateで実行させれば良いかも知れません。この場合、一覧表シートの再セレクトで一覧表更新となります。

Public Sub MakeSheetList()
    Dim sht As Variant
    Application.ScreenUpdating = False
    With Sheets("sheet1")
        .Cells.ClearContents
        .Cells(1, 1) = "シート名"
        For Each sht In Sheets
            .Cells(sht.Index + 1, 1) = sht.Name
        Next sht
    End With
    Application.ScreenUpdating = True
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    MakeSheetList
End Sub