Найти в Дзене
Excellent - Всё про Excel

Отображаем все скрытые листы Excel одним действием - готовое решение на VBA

Странное дело. В Excel можно одним движением скрыть любое количество листов (выделяем нужны листы > правая кнопка мыши > скрыть). А вот быстрого обратного действия я и не нашел.

Можно, конечно, пойти долгим путем:

  • правая кнопка мыши > показать > выбрать лист для отображения;
  • повторить предыдущий пункт столько раз, сколько листов нужно открыть;
  • а если лист находится в состоянии 2 - xlSheetVeryHidden, то для его отображения придется спуститься в редактор VBA и руками перевести лист в состояние -1 - xlSheetVisible (где редактор VBA и настройки скрытности листа, рассказывал в этой статье);
  • и снова повторить предыдущий пункт на каждый очень скрытый лист.

Честно говоря, удивляет, что нет стандартного решения одной кнопкой.

Сегодня мне попался файл с большим количество скрытой от глаз начинки, поэтому пришла в голову мысль написать макрос, который отобразит все листы одним действием (включая листы в состоянии xlSheetvisible). Код получился простейший:

  • Задаем единственную переменную (назвал её Wsh) и определяем, как объект Worksheet (рабочий лист)
  • Далее прогоняем цикл: каждому листу присваиваем состояние видимости (xlSheetVisible)
  • Готово.

Макрос, конечно, примитивен и, вероятно, выдаст ошибку при встрече с защищенным паролем листом, но для моих задач и его хватит, поэтому делюсь готовым решением - пользуйтесь, если актуально:

Sub AllSheetsVisible()
Dim Wsh As Worksheet
For Each Wsh In ActiveWorkbook.Worksheets
Wsh.Visible = xlSheetVisible
Next Wsh
End Sub
Excel. Код макроса для отображения всех скрытых листов файла.
Excel. Код макроса для отображения всех скрытых листов файла.

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