Excelで目次(シートへのリンク)を作るマクロ

Excelでシートが多くなると選択に手間がかかります。
とはいえ、1つのファイルにしておきたいこともあるはずです。
そこで、シートへの目次を作ってみましょう。
Excel見出し

シートの基本的な操作方法

シートの基本的な使い方はこちらの記事にまとめてあります。
Ctrl+Pageup(MacだとCtrl+fn+↑)でシートを左に移動、Ctrl+Pagedown(MacだとCtrl+fn+↓)でシートを右に移動できるショートカットキーは便利ですので是非。
Excelのメリットの1つ、シートを最大限に活用するテクニック7+1 | EX-IT

シートへのリンクを作る方法

シートへのリンクは次のように作ります。
①まずシート名(省略・短縮してもかまいません)を入力します。
スクリーンショット 2013 11 19 4 06 32

②Ctrl+Kを押し、次のような画面で、[このドキュメント内]を左のメニューから選び、さらに右のボックスで、リンクしたいシートを選択し、OKをクリックします。
スクリーンショット 2013 11 19 4 06 49

③これでリンクができ、
スクリーンショット 2013 11 19 4 07 00

クリックすると、設定したシートへ移動できます。
スクリーンショット 2013 11 19 4 08 20

マクロで一気に目次を作る方法

上記の設定をすべてのシートでやれば目次が完成します。
しかし、非常にめんどくさいです。
マクロで一気に作りましょう。

コードは次のとおりです。

Sub mokujisakusei()

Dim i
For i = 1 To Worksheets.Count
  ActiveSheet.Hyperlinks.Add Anchor:=Range("a" & i), _
  Address:="", _
  SubAddress:=Worksheets(i).Name & "!A1", _
  TextToDisplay:=Worksheets(i).Name
Next

End Sub

「For i = 1 To Worksheets.Count〜Next」で、シートの数だけ、処理を繰り返します。
10枚シートがあれば、10回、100枚なら100回、「リンクを設定する」という処理を繰り返すのです。


■スポンサードリンク
------※この記事は、投稿日現在の状況、心境、法律に基づいて書いています。---------

■スポンサードリンク


「リンクを設定する」という命令は、「ActiveSheet.Hyperlinks.Add」で、細かい指定はその後の分でやっています。

「Anchor:=Range(“a” & i)」は、リンクを入れるセルの指定です。
10枚シートがある場合は、A1からA10にリンクを作り、100枚シートがある場合は、A1からA100にリンクを作るように設定しています。

「Address:=Worksheets(i).Name & “!A1″」は、リンク先のシート名の設定です。
左から順に設定していきます。

「TextToDisplay:=Worksheets(i).Name」は、セルにシート名を表示する設定です。

上記のコードだと、シート「目次」へのリンクもできてしまうので、実際に使う場合は、
・左から一番目にシート「目次」を作る
・左から2番目以降のシートの「目次」を作る
という流れにします。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Sub mokujisakusei()

    'シート「目次」があったら、削除
    On Error Resume Next
    Application.DisplayAlerts = False
        Worksheets("目次").Delete
    Application.DisplayAlerts = True
    
    'シートを一番左に追加し、名前を「目次」に変更
    Worksheets.Add Before:=Worksheets(1)
    ActiveSheet.Name = "目次"
    
    
    '左から2番目のシートから目次を作成
    Dim i
    For i = 2 To Worksheets.Count
    
            Worksheets("目次").Range("a1").Value = "目次"
        
            Worksheets("目次").Hyperlinks.Add Anchor:=Range("a" & i), _
            Address:="", _
            SubAddress:=Worksheets(i).Name & "!A1", _
            TextToDisplay:=Worksheets(i).Name
        
    Next

    Worksheets("目次").Select
    
End Sub

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
シート「目次」に瞬時に戻りたいなら、次のようなマクロを設定すると便利です。

Sub mokuji()
  Worksheets("目次").Select
End Sub

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

さらにショートカットキーを設定しておきましょう。
ExcelでAlt+F8を押し、[オプション]からショートカットキーを設定できます。

スクリーンショット 2013 11 19 4 40 00

■スポンサードリンク



マウス操作がよければ各シートに目次へのリンクをつけてもいいでしょうね。
マクロをコピーして使う方法はこちらの記事を参考にしてください。
ネット上のマクロを自分のファイルに流用する方法 | EX-IT


違った視点から書いた記事です。





■スポンサードリンク
【編集後記】
昨日は終日お客様訪問。
通常業務の他、年末調整、賞与計算、経費精算マクロ導入など盛りだくさんでした(^_^)




■スポンサードリンク


■ブログEX-ITの購読 →feedlyを使って無料で読む
→Twtterで読む
Facebookで読む

1日1新 Instagram
井ノ上陽一のVALU
■著書
ひとり税理士のIT仕事術―ITに強くなれば、ひとり税理士の真価を発揮できる!!
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
毎日定時で帰っても給料が上がる時間のつかい方をお金のプロに聞いてみた!
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
『社長!「経理」がわからないと、あなたの会社潰れますよ』
『そのまま使える経理&会計のためのExcel入門』
###