本記事ではエクセル上でシートごとの目次を自動で作成する方法をご紹介します。VBAなどは不要で、かつ目次が自動更新されるため非常に使い勝手がよく、複数のシート間の移動を効率的に行えるようになります。
結論
Excel上で目次を作る方法は下記のステップで実装可能です。より詳しい解説は各セクションで行っています。(クリックで該当セクションにジャンプします。)
- ステップ1
任意の名前にて、ブック内のすべてのシートを取得する名前付き範囲を登録する
- ステップ2
任意のセルにステップ1で登録した名前付き関数を入力する
- ステップ3
[HYPERLINK]関数を使用して、各シートへリンクするための数式を入力する
また、今回ご紹介する方法はネット上でよく見かけるVBAを使用した方法と比べて下記のようなメリットがあります。
Excelで目次を作る方法の詳細な解説
概要
本記事でご紹介する方法の大まかな流れとして、名前付き範囲に登録した数式からブック内の全シート名を出力し、そのシート名をもとに、各シートにリンクするように[HYPERLINK]関数を設定するものになります。
ステップごとの解説
名前付き範囲の登録
まずはじめに、任意の名前にてブック内のすべてのシートを取得する名前付き範囲を登録します。今回は最低限のみの解説となりますが、関数の動作などより詳しい解説については以前ご紹介したブック上の全シートを取得する方法の解説記事をご確認ください。
- [数式]タブの[名前の管理]を開く: [数式]タブの[定義された名前]セクションにある[名前の管理]をクリックします
- 新しい名前を作成: [新規作成]ボタンをクリックして新しい名前を作成します。
- 名前と数式を入力:下記の数式を任意の名前で登録します。ここでは
list_SheetNames
という名前で登録しています
=TEXTAFTER(GET.WORKBOOK(1), "]")
名前付き範囲の出力
任意のセルにて、ステップ1で登録した名前付き範囲を出力します。ここでは、先程登録したlist_SheetNames
を[TRANSPOSE]関数で縦方向に出力しています。
[HYPERLINK]関数でリンクを表示
最後に、ステップ2でセル範囲 (スピル) を出力した列の右隣などに、下記の数式を入力します。この数式では、各シートのA1セルにリンクするハイパーリンクを出力しています。
* [ステップ2 (シート名) の出力セル]にはご自身でセルを設定してください。セルの後の#記号はExcel2019以降で使用可能なスピルを示す記号ですので削除しないでください。 (例: B5#
)
=HYPERLINK("#'"&[ステップ2 (シート名) の出力セル]#&"'!A1", "クリックでジャンプ")
こちらで各セルをクリックすると該当シートにジャンプできることが確認できます。
なお、[HYPERLINK]関数の出力については下記のポイントを変更することでカスタマイズできます。
...&"'!A1"
のA1:
各シートのどのセルにリンクするかを設定しています。A1以外のセルにリンクさせたい場合は任意のセルを入力してください。A1:B5
のような範囲へのリンクにすることも可能です- “クリックでジャンプ”:
リンクの表示テキストを設定しています。任意の文字列を設定可能です
また、[HYPERLINK]関数の使い方に関しては下記のとおりです。
- 構文:
HYPERLINK(URL, [表示文字列])
- 各引数の説明:
引数 説明 URL必須 リンクのURL 表示文字列省略可 表示テキスト - 参考: マイクロフト公式ドキュメント
おわりに
以上が、Excelでのシート間目次の作り方の解説になります。こちらはVBA不要かつ自動更新で実装できます。
ご質問やご不明点がある場合はお気軽にコメントお待ちしております。
ご精読いただきありがとうございました。
コメント