【ExcelVBA】エクセルで全てのシートのシート名を一覧に表示してハイパーリンクを設定するマクロ

メニューリスト①
スポンサーリンク

どうも、あおです。

 

 

 

エクセルでシートを複数つくった際、目的のシートどこだったっけ?

と、パッと見つけれないことがあります。

 

それを解消するマクロの紹介

 

 

イメージとして、シートを挿入し、そのシートに自分以外の全シート名を

一覧表示させて、ハイパーリンクを設定し、クリックするとそのシートに

飛ぶといった内容になります。

(officeのバージョンは、古いですが2003を使用。

バージョンによっては、コードを書く画面の表示方法等が

異なるかもしれないので、ネットで調べてください)

 

 

 

 

1. 一覧表示用のシートを挿入

 

メニューリスト②

 

 

Sheet1が追加されます

メニューリスト③

 

 

 

 

2.Alt+F11を押して、コードを記入する画面を起動

 

その後、ツールバー「挿入」→「標準モジュール」をクリック

メニューリスト④

 

 

 

 

3.標準モジュール画面にコードを貼り付け

 

メニューリスト⑤

 

 

【コード】

Sub MAINLIST()
Dim i As Integer, r As Range
With Worksheets(1)
.Hyperlinks.Delete
.Range(“A1:A65536”).ClearContents
For i = 2 To Worksheets.Count
Set r = .Cells(i, 1)
r.Value = Worksheets(i).Name
.Hyperlinks.Add Anchor:=r, Address:=””, _
SubAddress:=Worksheets(i).Name & “!A1”
Next i
End With
End Sub

 

 

 

 

4.元の画面(Sheet1)に戻る

 

メニューリスト③

 

 

 

 

5.Alt+F8を押して、実行画面を表示し、右上の実行ボタンを押下

 

メニューリスト⑥

 

 

 

 

6.全シート分のシート名一覧とハイパーリンクが設定される

 

メニューリスト⑦

 

 

 

 

移動したいシートの名前をクリックすると

メニューリスト⑧

 

 

 

 

そのシートに飛びます

メニューリスト⑨

 

 

 

これなら、レシピなどをエクセルでまとめてる場合、目的のレシピを

Ctrl+Fで検索して、すぐにそのシートに飛ぶことができます。