たくさんのシートがあるExcelファイルの場合、先頭に目次シートを作り、各シー トへのハイパーリンクを設定しておけば利便性が高まります。しかし、これを手作 業でやろうとすると、意外と面倒で時間がかかってしまいます。マクロを使えば、一 瞬で作業を終わらせることができます。
1. 目次を作りたいExcelファイルを開き、[Alt]+[F11]でVBEを立ち上げる
2. 以下のコードを貼り付け、[F5]で実行する
コード-------------
Sub 目次シート作成( )
Application.ScreenUpdating = False
Dim i As Long, r As Long
Worksheets.Add before:=Sheets(1)
ActiveSheet.Name = "目次"
With Sheets("目次")
.Cells(1, 1) = "シート名"
For i = 1 To Sheets.Count
If Sheets(i).Name <> "目次" Then
r = .Cells(Rows.Count, 1).End(xlUp).Row+1
.Cells(r, 1) = Sheets(i).Name
.Hyperlinks.Add Anchor:=.Cells(r, 1), _
Address:="", _
SubAddress:=Sheets(i).Name & "!A1"
End If
Next
End With
End Sub
-------------
解説-------------
画面更新の停止
カウンター変数「i」、「r」の宣言
新規シートを先頭に追加する。
作成したシートの名前を「目次」にする。
目次シートA1セルに「シート名」と入力する。
iが1からシート総数になるまで以下の処理を繰り返し行う。
シートの名前が「目次」以外のときに以下の処理を行う。
変数rに目次シートA列データ最終行に1を足した数字を入れる。
目次シートA列r行目のセルにシートiの名前を入れる。
A列r行目のセルに、シートiのA1セルへのハイパーリンクを設定する。
-------------
シートは、VBAではシート名での指定の他に「Sheets(数字)」で指定ができます。この場合、sheets(1)が表示されている一番左のシートとなり、右に行く順 に1ずつ数が増えていきます。シートの入れ替えや削除を行っても、常に表示されている順番でシート番号が振られます。
Amazon.co.jp
