Управление скрытыми листами в Excel
Мы поговорим о том, как скрыть листы и как показать скрытые листы в Excel, в том числе о том, как вы можете отображать очень скрытые листы с помощью Visual Basic.
Приветствую всех, уважаемые читатели блога.
Время от времени возникает необходимость скрывать листы в Excel как от любопытных глаз других пользователей, так и от нас самих, чтобы эти самые листы не отвлекали и не мешали вашей работе.
Есть и обратная потребность: в частичном или полном отображении скрытых листов. В общем, давайте рассмотрим различные способы реализации как скрытия, так и отображения листов.
Как скрыть лист в Excel?
Процедура скрытия листа довольно проста: в нижней панели щелкните правой кнопкой мыши имя листа, который мы хотим сделать невидимым, и в раскрывающемся меню выберите команду Скрыть:
Если вам нужно скрыть сразу несколько листов, удерживая клавишу Ctrl, выберите нужные листы с помощью мыши и повторите указанные выше действия (щелкните правой кнопкой мыши один из выбранных листов и затем нажмите «Скрыть).
Как показать скрытый лист в Excel?
Чтобы снова открыть скрытый лист, мы также щелкаем правой кнопкой мыши любой из листов в нижней панели и выбираем команду «Показать». В появившемся окне вы можете увидеть все невидимые листы книги (даже если он только один) и выбрать, какой лист отображать:
После того, как мы скроем и покажем отсортированные листы, давайте перейдем к немного более сложной задаче, то есть мы узнаем, как скрыть лист, чтобы обычный пользователь не мог его увидеть.
Как сделать очень скрытый лист в Excel?
Мы можем настроить параметры отображения любого листа в Excel с помощью Visual Basic. Перейдите в редактор Visual Basic (на панели вкладок выберите Разработчик -> Код -> Visual Basic или используйте комбинацию клавиш Alt + F11):
В левой верхней части окна в списке выбираем нужный нам лист и чуть дальше заглянем в блок с настройками в деталях (если он изначально не отображается, то в панели вкладок Visual Basic выберите Вид -> Свойства окна и блок появятся).
Свойство Visible отвечает за отображение листа в параметрах, и, как мы видим, всего есть 3 варианта:
- xlSheetVisible. Лист открывается и отображается во вкладках;
- xlSheetHidden. Лист скрыт, но отображается в списке невидимых листов;
- xlSheetVeryHidden. Лист скрыт и нигде не отображается.
Итак, чтобы скрыть лист с помощью Visual Basic, мы указываем значение параметра xlSheetHidden и, чтобы показать его, устанавливаем xlSheetVisible.
Из названия последнего значения xlSheetVeryHidden был взят термин очень скрытый лист, но в принципе также часто можно встретить выражение super hidden. В то же время, что очень важно, вы можете установить значение параметра xlSheetVeryHidden только через Visual Basic, что не позволяет обычному пользователю обнаруживать очень скрытые листы стандартным способом.
Вернемся к нашему примеру.
Поскольку вначале мы скрывали Sheet1, для этого установлена видимость xlSheetHidden, и теперь нас интересует только третий вариант. Мы выбираем его, и теперь список скрытых листов пуст (кнопка в этом случае неактивна, хотя мы знаем, что на самом деле в книге есть очень скрытые листы):
Теперь пользователь не увидит такой сверхскрытый лист в интерфейсе Excel, но он все равно сможет его найти, если получит доступ к редактору Visual Basic.
Если стоит задача найти такие листы и отобразить их, повторяем аналогичные действия и в Visual Basic для таких листов устанавливаем параметр xlSheetVisible, после чего все листы станут видимыми.
Автоматизация открытия скрытых листов с помощью макроса
Однако процесс открытия каждого листа вручную (или с помощью Visual Basic) может занять много времени, так как вам нужно будет выполнить эту процедуру для каждого скрытого листа.
Если их немного, то, конечно, наверное, будет быстрее открыть их руками, но если их 5-10 и больше, то, как всегда в таких случаях, можно воспользоваться помощью макросов.
В редакторе Visual Basic создайте новый модуль (Insert -> Module) и вставьте следующий код (подробные пояснения добавлены перед кодом):
Макро-код Visual Basic Sub OpenAllHiddenSheets () Dim Sheet As Worksheet для каждого листа в ActiveWorkbook.Worksheets ‘Цикл для каждого листа в рабочей книге If Sheet.Visible xlSheetVisible Then’ Если лист не виден Sheet.Visible = xlSheetVisible ‘Затем сделайте отображается End If Next End Sub
1 2 3 4 5 6 7 8 | Sub OpenAllHiddenSheets () Dim Sheet As Worksheet для каждого листа в ActiveWorkbook.Worksheets ‘Цикл для каждого листа в книге If Sheet.Visible xlSheetVisible Then’ Если лист не отображается Sheet.Visible = xlSheetVisible ‘Затем мы делаем его видимым End Если следующий конец подписки |
Теперь, чтобы просмотреть все листы, просто запустите макрос OpenAllHiddenSheets.
Спасибо за внимание!
Если у вас остались вопросы по теме статьи, задавайте их в комментариях и поделитесь своими мыслями.