Excel

【便利】Excelシートの一覧作成、クリックで移動できるマクロ

Excel

本稿では、Excelシートの一覧を作成するマクロを紹介します。
一覧のシート名をクリックすると、そのシートへジャンプできるので便利です♪

Step1 マクロを実行して、シートの一覧を作成。

Step2 一覧のシート名をクリックして、そのシートへジャンプ。

使いどころ

  • ブックのシートを一覧にして、どんなシートがあるかを俯瞰。
  • シート一覧の右側に各シートの内容をメモすることで、ブックのシート構成を把握。
  • シート数が多いブックで、シート一覧を経由して、目的のシートへ効率的に移動。

 当ブログの管理人PONSEは、Excelで書かれた設計書などを扱う際に、上記の用途で使っています。

事前準備

こちらから、本稿のマクロが登録されたブックをダウンロードします。

使い方

使い方は、下記の4ステップです。

STEP1 マクロのブックを開く
STEP2 シートを一覧化したいブックを開く
STEP3 シート一覧を作成する
STEP4 シート一覧を使う

マクロのブックを開く

個人用マクロブックやクイックアクセスツールバーに本稿のマクロを登録済の場合、当手順をスキップできます。

ダウンロードしたブックを開きます。

ダウンロードしたブックを初めて開くと、「このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました。」と表示されて、マクロが動かないことがあります。

解決方法を下記の投稿に掲載していますので、参照ください。

Excel画面の上部にセキュリティの警告が表示された場合、「コンテンツの有効化」をクリックします。

シートを一覧化したいブックを開く

STEP1のマクロのブックを開いたまま、シートを一覧化したいブックを開きます。
既に開いている場合は、表示してください。

シート一覧を作成する

ALTキーを押したまま、F8を押します。

表示された[マクロ]画面で、「シート一覧作成」を選択。
「実行」ボタンを押します。

すると、新規ブックにシート一覧が作成されます。

一覧を作成したら、STEP1で開いたマクロのブックは閉じて構いません。
(マクロのブックは、シート一覧を作成する時にだけ使います)

シート一覧を使う

作成されたシート一覧のシート名をクリックすると、そのシートにジャンプできます。

なお、下記のメッセージが表示された場合、「はい」ボタンを押してください。

使い方は以上です!

作成されたシート一覧を保存しておけば、また開いて使えます。
この時、ジャンプ先のブックは開いておく必要はありません。
(シート名をクリックすると、ジャンプ先のブックが自動で開かれます)

シート一覧からジャンプする際に、ブラウザのExcelが開いてしまう場合は、ジャンプ先のExcelブックがOne Drive等のオンライン上に保存されている可能性があります。

※ブラウザのExcelでは、ブックは開かれますが、目的のシートへはジャンプできません

よく分からなければ、ジャンプ先のExcelブックをローカルディスク(Cドライブ直下)に保存したうえで、そのブックを開いてシート一覧を作成してみてください。

さらに快適に

個人用マクロブックやクイックアクセスツールバーを使用すると、本稿のマクロがすぐに使えて便利です。(使い方のSTEP1「マクロのブックを開く」を省略できます)

個人用マクロブックの使い方は、下記の投稿をチェックしてみてください。

また、クイックアクセスツールバーにマクロを登録すると、マウスクリックでマクロが実行できるので便利です。

ダウンロード

下記のダウンロードボタンを押して、ツールをダウンロードします。

マクロのソース

ソースコードは以下のとおりです。
本稿のマクロを、個人用マクロブックなどで利用する際にコピーしてください。

Sub シート一覧作成()

    Dim wb_trgt As Workbook
    Dim hyplink  As Hyperlink
    Dim rw As Long
    Dim i As Integer

    Set wb_trgt = ActiveWorkbook
    
    Workbooks.Add
    ActiveSheet.Name = "シート一覧"

    rw = 1
    For i = 1 To wb_trgt.Worksheets.Count
        With wb_trgt.Worksheets(i)
            If .Visible Then
                Cells(rw, 1) = .Name
                Set hyplink = ActiveSheet.Hyperlinks.Add( _
                    Cells(rw, 1) _
                    , Address:=wb_trgt.Path & "\" & wb_trgt.Name & "#'" & .Name & "'!A1" _
                    , TextToDisplay:=Cells(rw, 1).Value _
                )
                rw = rw + 1
            End If
        End With
    Next i

End Sub

今回の投稿は以上です。

コメント

タイトルとURLをコピーしました