Не показывать скрытые листы vba excel

Суперскрытый лист

Иногда некоторые листы в книге приходится скрывать от глаз пользователей. Классический способ предполагает скрытие листа через меню Формат — Лист — Скрыть или правой кнопкой по ярлычку листа — Скрыть (Hide):

very_hidden_sheet3.png

Проблема в том, что пользователь, зайдя в меню Формат — Лист — Отобразить или щелкнув правой кнопкой мыши по ярлычку любого листа и выбрав Показать (Unhide), будет видеть имена скрытых листов и понимать, что часть информации от него скрыта:

very_hidden_sheet4.png

Поэтому лучше сделать так, чтобы пользователь и не догадывался о присутствии в книге каких-то скрытых листов. Для этого открываем редактор Visual Basic:

  • в Excel 2003 и старше — выбрав в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor)
  • в Excel 2007 и новее — нажав на кнопку Редактор Visual Basic (Visual Basic Editor) на вкладке Разработчик (Developer) или нажав ALT+F11 

Ищем на экране вот такое окно:

very_hidden_sheet1.gif

Если его не видно, то можно его отобразить через меню View — Project Explorer (верхняя часть) и View — Properties Window (нижняя часть).

В верхней части на «дереве» находим и выделяем наш лист (на картинке — Лист1), а в нижней части находим свойство Visible (в конце списка) и делаем его xlSheetVeryHidden.

very_hidden_sheet2.gif

Вуаля! Теперь увидеть этот лист и узнать о его существовании можно только в редакторе Visual Basic и ни в каких окнах и менюшках Excel он отображаться не будет. Меньше знаешь — крепче спишь. :)

Ссылки по теме

  • 4 уровня защиты в файлах Excel
  • Скрытие листов оптом с помощью надстройки PLEX

From the Visual Basic for Applications help:

When an object is hidden, it’s removed from the screen and its Visible property is set to False. A hidden object’s controls aren’t accessible to the user, but they are available programmatically to the running application, to other processes that may be communicating with the application through Automation, and in Windows, to Timer control events.

Not much help there I’m afraid, and I couldn’t find much else through Google.

As you said yourself, the Select method and Selection Property don’t work on a hidden Worksheet, they should work on a hidden Workbook though. (Please correct me if I’m wrong.) In general however, it’s not always all that efficient to select ranges in worksheets anyway, you are better off working with the Range property (which does work on a hidden worksheet).

EDIT:

The following code will change the color of A1:A8 to Cyan even when the Worksheet is not visible:

Dim book2 As Workbook
Set book2 = Workbooks.Open("C:Book2.xls")

book2.Worksheets("Sheet1").Visible = False
book2.Windows(1).Visible = False

With book2.Worksheets("Sheet1").Range("A1:E8").Interior
    .ColorIndex = 8
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
End With

book2.Windows(1).Visible = True
book2.Worksheets("Sheet1").Visible = True

В этой статье представлены несколько способов шаг за шагом показать все скрытые листы и рабочие листы в Excel.

  1. Показывать все скрытые листы по одному в Excel
  2. Показать все скрытые листы с помощью кода VBA
  3. Отобразить все скрытые рабочие листы с помощью Kutools for Excel одним щелчком мыши
  4. Показать все скрытые листы с помощью функции «Переключить видимость скрытых листов»
  5. Показать все очень скрытые рабочие листы с помощью Kutools for Excel

Показывать все скрытые листы по одному в Excel

Мы можем применить Показать функция для одновременного отображения скрытых листов в Excel. Пожалуйста, сделайте следующее:

1. Нажмите Главная > Формат > Скрыть и показать > Показать. Смотрите скриншот:
Внимание: Вы также можете щелкнуть правой кнопкой мыши любое имя листа на панели вкладок Лист и выбрать Unhide из контекстного меню.

2. Теперь все скрытые листы перечислены в Unhide диалоговое окно. Выберите лист, который вы хотите показать, и нажмите кнопку OK кнопку.

3. Затем отображается выбранный скрытый лист. Повторите шаг 2 выше, чтобы показать все скрытые листы один за другим.

Внимание: Показать все скрытые листы не так просто, как могло бы быть, хотя есть сотни скрытых листов, которые нужно показать. Возможно, вам придется щелкнуть мышью сотни раз, чтобы повторить операции. Если вы хотите получить более простой способ, сделайте его в соответствии с процедурами, которые предоставляют следующие методы.

Переключить видимость скрытых листов — один щелчок, чтобы показать все скрытые листы, и один щелчок, чтобы восстановить скрытые.

С помощью удобной кнопки переключения Worksheets предоставляемые Kutools for Excel, вы можете одним щелчком мыши отобразить все скрытые рабочие листы в активной книге и щелкнуть его еще раз, чтобы сделать все скрытые рабочие листы невидимыми.

рекламный переключатель показать скрытые листы

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

Показать все скрытые листы с помощью кода VBA

Следующий короткий код VBA также может помочь вам отобразить все скрытые листы одновременно.

1. Удерживайте Alt + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий макрос в окно модуля.

Sub UnhideAllSheets()
	Dim ws As Worksheet

	For Each ws In ActiveWorkbook.Worksheets
		ws.Visible = xlSheetVisible
	Next ws

End Sub

3, нажмите F5 ключ для запуска этого макроса. И скрытые листы отобразятся сразу.


Отобразить все скрытые рабочие листы с помощью Kutools for Excel одним щелчком мыши

Kutools for ExcelАвтора Показать все скрытые листы Функция может помочь вам легко отобразить все скрытые листы одним щелчком мыши.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

Нажмите Кутулс > Показать / Скрыть > Показать все скрытые листы, см. снимок экрана:

Тогда все скрытые листы будут показаны сразу. Смотрите скриншот:

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

С помощью этого удобного Показать все скрытые листы вы можете отобразить все скрытые листы одним щелчком мыши в Excel. Получите бесплатную пробную версию!


Показать все скрытые листы с помощью функции «Переключить видимость скрытых листов»

Kutools for Excel также предоставляет удобный Worksheets (Переключить видимость скрытых листов), чтобы отображать или скрывать все скрытые листы одним щелчком мыши в активной книге.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

Под Кутулс вкладку, нажмите Рабочий лист кнопку, чтобы отобразить все скрытые листы, и нажмите кнопку Worksheets еще раз, чтобы восстановить скрытый статус.

Worksheets переключает видимость рабочих листов. Один щелчок, чтобы отобразить все скрытые листы, и другой щелчок, чтобы скрыть их снова. Получите бесплатную пробную версию!


Показать все очень скрытые рабочие листы с помощью Kutools for Excel

Иногда вышеуказанные методы не могут отобразить скрытые рабочие листы. Это потому, что эти рабочие листы очень скрыты. В этой ситуации вы можете применить функцию «Скрыть/показать рабочие книги и листы». Kutools for Excel чтобы быстро показать их.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

1. Нажмите Кутулс > Показать спрятать > Скрыть / отобразить книги и таблицы.

2. В диалоговом окне «Скрыть / отобразить рабочие книги и листы» щелкните, чтобы выбрать активную книгу, и щелкните значок Показать все в Листы раздел. Смотрите скриншот.

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

Скрыть / отобразить книги и таблицы скрыть или отобразить сразу несколько открывающихся книг и их рабочих листов сразу, в том числе очень скрытые. Получите бесплатную пробную версию!


Отобразить все скрытые рабочие листы с помощью Kutools for Excel одним щелчком мыши


Статьи по теме

  • Скрыть другие листы
  • Скрыть другие книги
  • Показать все скрытые книги
  • Показать скрытые диапазоны (столбцы и строки)

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

rustim86

0 / 0 / 0

Регистрация: 01.09.2015

Сообщений: 50

1

Скрытие/отображение рабочих листов макросом

22.01.2016, 09:26. Показов 22470. Ответов 8

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Всем здравствуйте! Подскажите, пожалуйста, есть ли возможность реализовать в VBA скрытие/отображение листов по признаку закрытый лист сделать открытым, и наоборот. Или код приведенный ниже сделать как-то компактнее что ли, дабы не писать команду для каждого отдельного листа с его названием. Заранее благодарю.

Visual Basic
1
2
3
4
5
6
ThisWorkbook.Sheets("Лист1").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист2").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист3").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист4").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист5").Visible = xlVeryHidden
ThisWorkbook.Sheets("Лист6").Visible = xlVeryHidden



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

22.01.2016, 09:50

2

Цитата
Сообщение от rustim86
Посмотреть сообщение

закрытый лист сделать открытым, и наоборот

Можно, но надо позаботиться о том, чтобы в любой момент хотя бы один лист был видимым.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub rustim86()
Dim i&, c As New Collection
  For i = 1 To ThisWorkbook.Sheets.Count
    If ThisWorkbook.Sheets(i).Visible = xlSheetVisible Then
      c.Add i
    Else
      ThisWorkbook.Sheets(i).Visible = xlSheetVisible
    End If
  Next
  If c.Count = ThisWorkbook.Sheets.Count Then
    MsgBox "в книге нет скрытых листов - невозможно скрыть все листы"
    Exit Sub
  End If
  For i = 1 To c.Count
    ThisWorkbook.Sheets(c(i)).Visible = xlSheetVeryHidden
  Next
End Sub



1



Shersh

Заблокирован

22.01.2016, 09:52

3

Visual Basic
1
2
3
for each sh in ThisWorkbook.Sheets
if sh.Visible=-1then sh.Visible=2else sh.Visible=-1
next

однако хотя бы один лист в книге должен быть отображен, имейте ввиду.



1



0 / 0 / 0

Регистрация: 01.09.2015

Сообщений: 50

22.01.2016, 09:58

 [ТС]

4

Казанский, благодарю!

Добавлено через 1 минуту
Shersh, да-да, я знаю, опытным путем уже узнал это И вам спасибо!



0



0 / 0 / 0

Регистрация: 17.03.2023

Сообщений: 9

24.03.2023, 09:46

5

Здравствуйте, уважаемые форумчане!
Я не программист, просто пытаюсь облегчить себе работу в excel и ищу готовые коды. В другой теме уже спрашивал, но может не в той теме задаю вопрос, поэтому нет ответа или пока некогда ответить.

Спрошу в этой теме. Как при помощи снятии галочек в ечейке с помощью кода скрывать листы с таким же именем как и в строке таблицы, ну и соответственно при установке галочки лист снова отображается. Подскажите код для файла, который приложил



0



АЕ

ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,939

Записей в блоге: 4

24.03.2023, 10:05

6

Цитата
Сообщение от Алик73
Посмотреть сообщение

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

Может пора создать свою тему?

Добавлено через 5 минут

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("E4:E100")) Is Nothing Then
        Target.Font.Name = "Marlett"
        If Target = "a" Then
            Target = ""
            ThisWorkbook.Sheets(Target.Offset(0, -1).Value).Visible = xlVeryHidden
        Else
            Target = "a"
            ThisWorkbook.Sheets(Target.Offset(0, -1).Value).Visible = xlSheetVisible
        End If
        Target.Offset(0, 1).Activate
    End If
End Sub

Добавлено через 4 минуты
однако надо или

Visual Basic
1
On Error Resume Next

вставить, либо Range(«E4:E8») ограничить…



1



0 / 0 / 0

Регистрация: 17.03.2023

Сообщений: 9

24.03.2023, 11:00

7

АЕ, спасибо!

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

Помогите еще, пожалуйста, что надо добавить в этот код, чтобы по снятию/установке галочки скрывались/показывались строки, с 1 по 5 например, на необходимом листе. Заранее благодарю!



0



ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,939

Записей в блоге: 4

24.03.2023, 11:30

8

Цитата
Сообщение от Алик73
Посмотреть сообщение

Помогите еще, пожалуйста,

Поэтому и говорю. Создайте тему. Я же вижу, что ваша хотелка бесконечна и однообразна до безобразия.



0



0 / 0 / 0

Регистрация: 17.03.2023

Сообщений: 9

24.03.2023, 11:51

9

АЕ, пока вопрос не снят, поэтому и однообразен.
Хорошо, спасибо.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

24.03.2023, 11:51

Помогаю со студенческими работами здесь

Разделение списка расчетных листов на листы или файлы PDF макросом
Доброго дня, форумчане! Есть такой вопрос — есть файл Excel, выгруженный из 1С, со списком…

Сбор рабочих листов из внешних файлов с последующим выполнением другого макроса
Использую прекрасный макрос с форума,-спасибо. Макрос умеет открывать много файлов "в один" — одну…

Объекты Excel VBA: рабочие листы. Примеры структур рабочих листов в приложении, их связь и изменчивость
Ребята,помогите найти информацию…ума не приложу,что нужно искать…
7. Объекты Excel VBA:…

Скрытие и отображение столбцов
Возникла такая задачка:
Есть 3 вида стоблбцов, которые чередуются (1-й вид, 2-вид, 3-й вид, 1-й…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

9

В статье «Как скрыть /отобразить страницу в Excel» мы рассмотрели как вручную открыть/ скрыть лист книги, все то же самое можно сделать и написав простой VBA макрос:

Sub Макрос1 ()
ActiveWindow.SelectedSheets.Visible = False 'Прячем активный лист
Sheets ("Лист2").Visible = False 'Прячем лист с именем "Лист2", можно аналогично отобразить лист обращаясь к нему по имени, но с параметром 'true'
End Sub

Лист так же можно скрыть и вручную из редактора VBA. Зайдем в редактор (Alt+F11) и кликнув на соответствующий лист, в настройках в параметре Visible  выберем интересующий нас статус видимости листа, в том числе статус «VeryHidden», который позволит убрать лист из списка скрытых листов (список вызывается из самого документа Excel при клике правой кнопкой мыши по названию листа):

Очень скрыт

Лист совсем скрыт

Будем благодарны, если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок расположенных ниже.

Like this post? Please share to your friends:
  • Не показывать проверку в word
  • Не показывать последние документы в word
  • Не показывать оси excel
  • Не показывать нули после запятой excel
  • Не показывать нули в диаграмме excel