Предлагаемая надстройка добавляет в меню листа (появляется по ПКМ на его ярлыке) после стандартных пунктов "Удалить" и "Переименовать" дополнительные пункты: "Скрыть", "Спрятать", "Управление видимостью листов" При выборе пункта "Скрыть" производится стандартное скрытие листа методом ActiveSheet.Visible = xlSheetHidden (xlSheetHidden == 0 == True). Это точно то же самое, что делается через меню Формат->Лист->Скрыть При выборе пункта "Спрятать" производится "сильное скрытие" листа методом ActiveSheet.Visible = xlSheetVeryHidden (xlSheetVeryHidden == 2). Этого сделать через меню Excel нельзя никак. Можно только, войдя в проект в VBE установить это свойство руками (ну или, естественно, программно, что и делают процедуры надстройки). При выборе пункта "Управление видимостью листов" выводится окно формы, содержащее список ВСЕХ листов книги с пометками возле каждого о текущей видимости листа: V H vH (Visible-Hidden-VeryHidden) Свойствами видимости любого из листов можно управлять. На приведённом скриншоте видно, что книга содержит 3 листа: Лист1, Лист2, Лист3 При этом пользователь видит ярлык только листа Лист1. Ярлыки листов Лист2 и Лист3 не отображаются. Но Лист2 можно отобразить, воспользовавшись Формат->Лист->Отобразить. А вот Лист3 невидим пользователю вообще (Сильно скрыт). Модуль этого листа можно увидеть только в VBE и только там можно управлять его свойствами.
Надстройкой очень удобно пользоваться для скрытия с посторонних (начальственных, например) глаз и от шаловливых рук "шибко дюже грамотных" пользователей листов со вспомогательными данными (например, расценками или именованными диапазонами, используемыми для формирования на видимых пользователю листах выпадающих списков проверки данных). К стати, если в книге "заныкать" лист и включить защиту паролем проекта VBA, то отобразить заныканные листы кроме как пользователю надстройки или хорошему знатоку VBA будет невозможно, т.к. в проект будет невозможно войти чтобы увидеть, что есть такой никому не видимый лист и руками установить ему свойство Visible (то же самое достигается и включением защищённого от снятия паролем режима общего доступа к файлу).
Автор надстройки не я, а webley, за что ему большой респект и уважуха Я только участвовал на Планете в разработке и "полировал" его решение, выложенное в топике скрыть/отобразить несколько листов
Предлагаемая надстройка добавляет в меню листа (появляется по ПКМ на его ярлыке) после стандартных пунктов "Удалить" и "Переименовать" дополнительные пункты: "Скрыть", "Спрятать", "Управление видимостью листов" При выборе пункта "Скрыть" производится стандартное скрытие листа методом ActiveSheet.Visible = xlSheetHidden (xlSheetHidden == 0 == True). Это точно то же самое, что делается через меню Формат->Лист->Скрыть При выборе пункта "Спрятать" производится "сильное скрытие" листа методом ActiveSheet.Visible = xlSheetVeryHidden (xlSheetVeryHidden == 2). Этого сделать через меню Excel нельзя никак. Можно только, войдя в проект в VBE установить это свойство руками (ну или, естественно, программно, что и делают процедуры надстройки). При выборе пункта "Управление видимостью листов" выводится окно формы, содержащее список ВСЕХ листов книги с пометками возле каждого о текущей видимости листа: V H vH (Visible-Hidden-VeryHidden) Свойствами видимости любого из листов можно управлять. На приведённом скриншоте видно, что книга содержит 3 листа: Лист1, Лист2, Лист3 При этом пользователь видит ярлык только листа Лист1. Ярлыки листов Лист2 и Лист3 не отображаются. Но Лист2 можно отобразить, воспользовавшись Формат->Лист->Отобразить. А вот Лист3 невидим пользователю вообще (Сильно скрыт). Модуль этого листа можно увидеть только в VBE и только там можно управлять его свойствами.
Надстройкой очень удобно пользоваться для скрытия с посторонних (начальственных, например) глаз и от шаловливых рук "шибко дюже грамотных" пользователей листов со вспомогательными данными (например, расценками или именованными диапазонами, используемыми для формирования на видимых пользователю листах выпадающих списков проверки данных). К стати, если в книге "заныкать" лист и включить защиту паролем проекта VBA, то отобразить заныканные листы кроме как пользователю надстройки или хорошему знатоку VBA будет невозможно, т.к. в проект будет невозможно войти чтобы увидеть, что есть такой никому не видимый лист и руками установить ему свойство Visible (то же самое достигается и включением защищённого от снятия паролем режима общего доступа к файлу).
Автор надстройки не я, а webley, за что ему большой респект и уважуха Я только участвовал на Планете в разработке и "полировал" его решение, выложенное в топике скрыть/отобразить несколько листовAlex_ST
Использую периодически, спасибо что сделали. Сколько времени прошло с тех пор) Показалось, что немного более удобно сразу реагировать на изменение в radio button ("на вкус и цвет")). Вдруг кому-то будет такой вариант интересен. Сильно не пинайте, редко с vba.
Использую периодически, спасибо что сделали. Сколько времени прошло с тех пор) Показалось, что немного более удобно сразу реагировать на изменение в radio button ("на вкус и цвет")). Вдруг кому-то будет такой вариант интересен. Сильно не пинайте, редко с vba.w00t
Ну, это, конечно Ваше дело, но ИМХО, как надстройку использовать удобнее, т.к. кнопку вызова макроса можно "случайно" спрятать вместе с листом, на котором она находится, а ярлычки листов (хотя бы одного) видны всегда
Ну, это, конечно Ваше дело, но ИМХО, как надстройку использовать удобнее, т.к. кнопку вызова макроса можно "случайно" спрятать вместе с листом, на котором она находится, а ярлычки листов (хотя бы одного) видны всегдаAlex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Суббота, 23.01.2021, 22:12
Тут мне один из друзей, юзающих надстройку "Управление видимостью листов", пожаловался, что у него в меню листа исчез дефаултный пункт "Скрыть". Такое может быть, т.к. надстройка после её закрытия убирается за собой - удаляет добавленные в меню пункты. Немного переделал надстройку. Изменения: вместо "Скрыть" теперь "Скрыть лист"; вместо "Спрятать" - "Спрятать лист". Добавил комментарии в модуль формы. Немного уменьшил межстрочный интервал на форме.
Тут мне один из друзей, юзающих надстройку "Управление видимостью листов", пожаловался, что у него в меню листа исчез дефаултный пункт "Скрыть". Такое может быть, т.к. надстройка после её закрытия убирается за собой - удаляет добавленные в меню пункты. Немного переделал надстройку. Изменения: вместо "Скрыть" теперь "Скрыть лист"; вместо "Спрятать" - "Спрятать лист". Добавил комментарии в модуль формы. Немного уменьшил межстрочный интервал на форме.Alex_ST