メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

すべてのシートの目次を作成し、自動的に更新するにはどうすればよいですか?

Author Xiaoyang Last modified

例えば、数百のワークシートを含むワークブックがあり、多数のシートの中から特定のシートに移動するのは多くの人にとって頭痛の種です。この場合、これらのワークシートの目次を作成すると、特定のシートに迅速かつ簡単に移動するのに役立ちます。このチュートリアルでは、すべてのシートの目次を作成し、シートを挿入、削除、または名前を変更したときに目次が自動的に更新される方法について説明します。

数式を使用して、すべてのシートの目次を作成し、自動的に更新する

Kutools for Excel を使用して、すべてのシートの目次を作成し、自動的に更新する

VBA コードを使用して、すべてのシートの目次を作成し、自動的に更新する


数式を使用して、すべてのシートの目次を作成し、自動的に更新する

Excel では、範囲名を定義し、数式でその名前を参照することで目次を作成できます。次の手順に従ってください:

1. 目次を作成したいすべてのシートの前に新しいシートを挿入し、必要に応じて名前を変更します。

2. 次に、「数式」>「名前の定義」をクリックします。スクリーンショットをご覧ください:

click Define Name under Formula tab

3. 「新しい名前」ダイアログボックスで、「名前」ボックスに「Sheetlist」という名前を指定します(必要に応じて変更可能)。次に、以下の数式を「参照先」テキストボックスに入力します。

=GET.WORKBOOK(1)&T(NOW())

type a name and formula into the dialog box

4. 次に、「OK」ボタンをクリックしてダイアログボックスを閉じます。

5. これで、目次を作成したい新しいシートに移動し、空白のセルに次の数式を入力してください:

=IFERROR(INDEX(MID(Sheetlist,FIND("]",Sheetlist)+1,255),ROWS($A$2:A2)),"")
注: 上記の数式では、「Sheetlist」はステップ2で作成した範囲名です。

6. そして、フィルハンドルを下にドラッグして、空白のセルが表示されるまで続けます。現在のワークブック内のすべてのシート名(非表示のシートも含む)が以下のようにリストされます。スクリーンショットをご覧ください:

enter a formula and drag to display all sheet names

7. 次に、目次の内容に対してハイパーリンクを作成する必要があります。次の数式を使用してください:

=HYPERLINK("#'"&A2&"'!A1","Go To Sheet")
注: 上記の数式では、「A2」はシート名を含むセルであり、「A1」はそのシート内でジャンプしたいセルです。たとえば、ハイパーリンクテキストをクリックすると、そのシートのセル A1 に移動します。

apply a formula to create hyperlinks for each sheet name

8. これで、ハイパーリンクテキストをクリックすると、そのシートにすぐに移動します。また、新しいシートを挿入したり、シートを削除したり、シート名を変更したりすると、目次が自動的に更新されます。

注意:
  • 1. この方法では、すべての非表示シートも目次に表示されます。
  • 2. ファイルを「Excel マクロ有効ブック」形式で保存する必要があります。このようにすることで、次回このファイルを開いたときに数式が正常に動作します。

Kutools for Excel を使用して、すべてのシートの目次を作成し、自動的に更新する

「Kutools for Excel」を持っている場合、その「ナビゲーションペイン」を使用して、すべてのシート名を左ペインに垂直にリストし、特定のシートにすばやく簡単に移動できます。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

Kutools for Excel のインストール後、次のように操作してください:

1. 「Kutools」>「ナビゲーション」をクリックします。スクリーンショットをご覧ください:

Click Kutools > Navigation

2. 展開された「ナビゲーション」ペインで、「ワークブック & シート」アイコンをクリックします。開いているすべてのワークブックが上部のリストボックスにリストされ、ワークブック内のすべての表示されているシートが下部のリストボックスに表示されます。スクリーンショットをご覧ください:

 click Workbook & Sheet icon, all opened workbooks and all visible sheets are displayed in the pane

3. これで、左ペインからシート名をクリックするだけでそのシートに移動できます。また、シートを削除、挿入、または名前変更すると、ペイン内のシートリストが動的に更新されます。

ヒント: デフォルトでは、非表示のシートはナビゲーションペインに表示されません。非表示のシートを表示したい場合は、「ボタンを押して非表示のワークシートを表示します。リリースして非表示にします。」アイコンをクリックするだけです。このアイコンをもう一度クリックすると、非表示のシートがすぐに隠れます。

 click the Toggle to unhide / hide all hidden worksheet(s) icon to display hidden sheets


VBA コードを使用して、すべてのシートの目次を作成し、自動的に更新する

時々、目次に非表示のシートを表示する必要がない場合があります。この問題を解決するために、次の VBA コードが役立ちます。

1. 目次を作成したいすべてのシートの前に新しいシートを挿入し、必要に応じて名前を変更します。次に、シートタブを右クリックし、コンテキストメニューから「コードの表示」を選択します。スクリーンショットをご覧ください:

right click the sheet tab, and choose View Code

2. 開かれた「Microsoft Visual Basic for Applications」ウィンドウで、以下のコードをシートコードウィンドウにコピーして貼り付けます:

VBA コード: すべてのシートの目次を作成し、自動的に更新する

Private Sub Worksheet_Activate()
'Updateby ExtendOffice
Dim xWsh As Worksheet
Dim xWshs As Worksheets
Dim xShowHinddenWorkSheet As Boolean
Dim xI As Long
Dim xRg As Range
Dim xStrTitle, xStrTCHeader, xStrWShName As String
xShowHinddenWorkSheet = False 'Change this to True to display the hidden sheets as you need
xStrTitle = "A1"
xStrTCHeader = "A3"
On Error Resume Next
Application.ScreenUpdating = False
Me.Cells.Clear
Me.Range(xStrTitle).Font.Bold = True
Me.Range(xStrTitle).Font.Size = Me.Range(xStrTitle).Font.Size + 2
Me.Range(xStrTitle).Value = "Table of Contents"
Me.Range(xStrTCHeader).Value = "No."
Me.Range(xStrTCHeader).Offset(0, 1).Value = "Sheet Name"
Me.Range(xStrTCHeader).Resize(1, 2).Font.Bold = True
xStrWShName = Me.Name
xI = 1
For Each xWsh In Application.ActiveWorkbook.Worksheets
    If xWsh.Name <> xStrWShName Then
        If (xWsh.Visible = xlSheetVisible) Or xShowHinddenWorkSheet Then
            Me.Hyperlinks.Add Anchor:=Me.Range(xStrTCHeader).Offset(xI, 1), Address:="", SubAddress:="'" & xWsh.Name & "'!A1", TextToDisplay:=xWsh.Name
            Me.Range(xStrTCHeader).Offset(xI).Value = xI
            xI = xI + 1
        End If
    End If
Next
Application.ScreenUpdating = True
End Sub

copy and paste the code into the module

3. 次に、「F5」キーを押してこのコードを実行すると、新しいワークシートに目次がすぐに作成されます。すべての非表示シートは目次に表示されません。スクリーンショットをご覧ください:

run code to create a table contents

4. 今後、シートを削除、挿入、または名前変更すると、目次が動的に更新されます。

注意: 次回ワークブックを開いたときにコードが正常に実行されるように、Excel ファイルを「Excel マクロ有効ブック」形式で保存する必要があります。

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得