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

  • URLをコピーしました!

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

 

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

シートの基本的な使い方はこちらの記事にまとめてあります。

Excelのメリットの1つ、シートを最大限に活用するテクニック7+1

Ctrl+Pageup(MacだとCtrl+fn+↑)でシートを左に移動、Ctrl+Pagedown(MacだとCtrl+fn+↓)でシートを右に移動できるショートカットキーは便利ですので、ぜひ。

 

 

 

Excelでシートへのリンクをつくる方法

Excelシートへのリンクは次のように作ります。

①シート名を入力

まず、シート名(省略・短縮してもかまいません)を入力します。
スクリーンショット 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

 

 

Excelマクロで一気に目次をつくる方法

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

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

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

 

各シートに目次へのリンクをつけてもいいでしょうね。
マクロについては、YouTube動画もありますので、参考にしていただければ。

ネット上のExcelマクロを自分のファイルに流用する方法

はじめてのExcelマクロ – YouTube


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

  • URLをコピーしました!