Оглавление рабочей книги: как быстро получить список всех листов

Иван Корнев·21.05.2024·4 мин

Чтобы сделать список всех листов в Excel, проще всего использовать встроенное меню навигации (правый клик на стрелки прокрутки) или создать интерактивное оглавление с гиперссылками через макрос. Это позволяет мгновенно переходить между вкладками в файлах с большим количеством страниц. Ниже приведены подробные инструкции для разных сценариев: от разового просмотра до создания постоянной панели навигации.

Быстрый просмотр без создания списка Если вам нужно просто увидеть перечень и перейти на нужный лист, не создавая новых таблиц: нажмите правой кнопкой мыши на маленькие стрелочки навигации в левом нижнем углу экрана (возле первого листа). Откроется окно «Навигация» со списком всех вкладок. Клик по имени сразу откроет нужный лист.

Способ 1: Интерактивное оглавление с гиперссылками (VBA)

Это самый удобный метод для постоянной работы. Он создает отдельный лист, где каждое имя является активной ссылкой. При клике вы мгновенно попадаете на нужную вкладку.

  1. Откройте файл Excel и нажмите комбинацию клавиш Alt + F11, чтобы запустить редактор VBA.
  2. В меню выберите Insert > Module.
  3. Скопируйте и вставьте следующий код в появившееся окно:
Sub CreateSheetIndex()
    Dim ws As Worksheet
    Dim indexSheet As Worksheet
    Dim i As Integer
    
    ' Создаем новый лист для оглавления
    Set indexSheet = Sheets.Add(Before:=Sheets(1))
    indexSheet.Name = "Оглавление"
    
    ' Оформляем заголовок
    Range("A1").Value = "Список листов книги"
    Range("A1").Font.Bold = True
    Range("A1").Font.Size = 14
    
    i = 2
    ' Проходим по всем листам и создаем гиперссылки
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Оглавление" Then
            Hyperlinks.Add Anchor:=Cells(i, 1), _
                Address:="", SubAddress:="'" & ws.Name & "'!A1", _
                TextToDisplay:=ws.Name
            i = i + 1
        End If
    Next ws
    
    ' Автоподбор ширины столбца
    Columns("A:A").AutoFit
End Sub
  1. Нажмите F5 или кнопку запуска (зеленый треугольник), чтобы выполнить макрос.
  2. Вернитесь в Excel — первый лист будет содержать кликабельный список всех остальных вкладок.

Файл с макросами необходимо сохранять в формате .xlsm (Книга Excel с поддержкой макросов). Если сохранить как обычный .xlsx, код будет удален при закрытии файла.

Способ 2: Динамический список через функцию старых версий

Этот метод позволяет вывести список формулой, но требует включения макросов в настройках безопасности, так как использует устаревшую функцию макроса Excel 4.0.

  1. Создайте новый лист и назовите его, например, Список.
  2. Выделите ячейку A1.
  3. Перейдите на вкладку Формулы > Определить имя (или нажмите Ctrl+F3).
  4. В поле «Имя» введите: СписокЛистов.
  5. В поле «Диапазон» вставьте формулу: =GET.WORKBOOK(1)&T(NOW())
  6. Нажмите ОК.
  7. Теперь в ячейку A1 на листе введите формулу: =ИНДЕКС(СписокЛистов; СТРОКА(A1)) (Для английской версии: =INDEX(ListOfSheets, ROW(A1)))
  8. Протяните формулу вниз, пока не появятся ошибки #ССЫЛКА!. Это значит, что список закончился.

Результат будет содержать имена листов с названием книги в начале. Чтобы убрать имя файла, можно дополнить формулу функциями замены текста, но базовый вариант уже пригоден для навигации.

Способ 3: Использование надстроек (без кода)

Если вы не хотите работать с кодом или включать макросы, можно воспользоваться готовыми надстройками или онлайн-конвертерами, но наиболее надежный встроенный инструмент без программирования — это ручное создание гиперссылок через контекстное меню, если листов немного (до 10-15).

Для больших файлов без использования VBA альтернативой служит панель «Области» (View > Navigation Pane) в новых версиях Excel 365, которая отображает структуру книги сбоку, хотя и не создает отдельного листа-оглавления.

Сравнение методов создания списка

МетодСложностьНаличие ссылокТребует макросовАктуальность данных
Меню навигации (стрелки)Очень легкоДа (временное)НетВсегда актуально
Макрос (Способ 1)СреднеДа (постоянно)ДаТребует перезапуска макроса
Формула GET.WORKBOOKСреднеНет (текст)Да (настройки)Обновляется автоматически
Ручной вводДолгоДа (вручную)НетТребует ручного обновления

Частые ошибки

  • Ошибка «Макросы отключены»: При попытке запустить скрипт или использовать формулу GET.WORKBOOK ничего не происходит. Решение: Файл > Параметры > Центр управления безопасностью > Параметры макросов > Выберите «Включить все макросы» (для тестов) или «Отключать все макросы с уведомлением».
  • Ошибка сохранения: После создания оглавления файл сохраняется как .xlsx, и при следующем открытии список исчезает. Решение: Всегда используйте «Сохранить как» и выбирайте тип файла Книга Excel с поддержкой макросов (.xlsm).
  • Неверные ссылки при переименовании: Если вы используете статические ссылки (не через макрос), а затем переименуете лист, ссылка может сломаться. Макрос из Способа 1 при повторном запуске создаст новый чистый список с актуальными именами.

FAQ

Можно ли обновить список листов автоматически при добавлении новой вкладки? Стандартными формулами Excel это сделать нельзя. Список на основе макроса (Способ 1) обновляется только при повторном запуске макроса. Для полной автоматизации требуются сложные события Workbook_SheetActivate, которые могут замедлять работу файла.

Работает ли это в Excel Online (веб-версия)? Нет. Веб-версия Excel не поддерживает макросы (VBA) и функции старого типа GET.WORKBOOK. В онлайн-режиме доступен только способ через меню навигации (клик по стрелкам внизу слева).

Как удалить созданный список листов? Просто удалите лист, который был создан для оглавления (например, «Оглавление» или «Список»). Это никак не повлияет на остальные данные в книге.