Как скрыть все, кроме активного рабочего листа

Что делает макрос: Бывают ситуации, когда Вы не можете удалить все, кроме активного листа, как мы это делали в предыдущем макросе. Есть более мягкий вариант — просто скрыть листы. Excel не позволяет скрыть все листы в книге — по крайней мере, один должен быть виден. Тем не менее, вы можете скрыть все, кроме активного листа.

Как макрос работает

Этот макрос с помощью цикла пробегает по всем рабочим листам и проверяет на соответствие имени каждого рабочего листа и имя активного листа. Каждый раз, когда имя не совпадает, он скрывает лист.

Код макроса

Sub SkritVseKromeAktivnogoLista()
'Шаг 1: Объявляем переменную
Dim ws As Worksheet
'Шаг 2: Запускаем цикл по всем рабочим листам
For Each ws In ThisWorkbook.Worksheets
'Шаг 3: Сравниваем имя каждого листа с активным
If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
'Шаг 4: Скрываем лист, если не совпадают
ws.Visible = xlSheetHidden
End If
'Шаг 5: Переходим на следующий рабочий лист
Next ws
End Sub

Как работает этот код

  1. Объявляем переменную WS, которая будет хранить имя каждого листа.
  2. На шаге 2 макрос начинает цикл по всем рабочим листам в этой книге.
  3. На этом этапе сравниваем активное имя листа с листом, который определяется с помощью цикла.
  4. Если имена листов различны, макрокоманда скрывает лист.
  5. На шаге 5, переходим к следующему листу книги и повторяем проверку снова. После того, как пробежались по всем листам, макрос завершается.

Вы заметили, что мы использовали xlSheetHidden в нашем макросе. Это свойство, которое получается, когда мы щелкает правой кнопкой мыши на листе и выбираем: Скрыть. В этом случае пользователь может щелкнуть правой кнопкой мыши на любой вкладке и выбрать: Отобразить. Он увидит все листы, которые скрыты. Но есть один вариант скрытия, который является более секретным. Если вы будете использовать xlSheetVeryHidden, чтобы скрыть свои листы, пользователи не смогут увидеть их, даже если они щелкнут правой кнопкой мыши на любой вкладке и выберут:Отобразить. Единственный способ, чтобы отобразить лист, скрытый таким способом, с помощью VBA.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.
Оцените статью
Добавить комментарий