2013年12月19日

EXCELのシートを目次化する

 EXCELを使ってドキュメントを作るのは悪いと思いません。
ですが、あまりにも読む人の為に工作がなくて困ってしまいます。


 いろいろな資料をシートでわけるのはいいのですが、どこになんのシートがあるかわからなくても待ってしまいます。
 全シートへのリンクを付けた目次をワンタッチで作成できるマクロを書きました。
使ってみてください。


Private Const 目次タイトル As String = "目次"
Private Const 目次列 As Long = 2

Public Sub 目次作成()

    Dim mokuji As Worksheet
    Dim sh As Worksheet
    Dim row As Long
    Dim i As Long
    
    ' 目次ワークシートの準備
    Set mokuji = Worksheets.Add(before:=Worksheets(1))
    row = 1
    mokuji.Name = 目次タイトル
    mokuji.Cells(row, 目次列).Value = 目次タイトル
    
    ' 各シート名を目次にする
    For i = 2 To ActiveWorkbook.Sheets.Count
        row = row + 1
        Set sh = ActiveWorkbook.Sheets(i)
        With mokuji
            .Cells(row, 目次列).Value = sh.Name
            .Hyperlinks.Add anchor:=.Cells(row, 目次列), Address:="#'" & sh.Name & "'!A1" ' リンク先のシートの先頭に位置づけ
        End With
    Next

End Sub


0 件のコメント:

コメントを投稿