Странное дело. В 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
Вставить код можно, например, в персональную книгу макросов, а далее вывести его на ленту команд. Однажды сделаю по этой теме отдельный обзор.