Vba excel скрыть ярлыки листов
Чтобы убрать с экрана все лишние элементы интерфейса Excel, можно выспользоваться таким кодом:
(скрываются все панели инструментов в Excel 2003 и лента в Excel 2007; скрываются ярлычки листов, линейки и полосы прокрутки; изменяется название окна приложения)
При необходимости можно отображать нужную панели инструментов, в то время, как остальные панели будут скрыты)
Чтобы скрывать панели инструментов Excel 2003 и ленту Excel 2007 только для одной книги,
поместите в модуль ЭтаКнига следующий код:
(при переключении на другой файл интерфейс Excel будет восстанавливаться)
См. пример в прикреплённом файле:
Комментарии
Добрый день! А можно сделать так, чтобы вместо надписи "наше окно" отображалось имя файла? Заранее, Спасибо!
Доброго времени суток! Огромное спасибо за Ваш пример, с удовольствием им пользуюсь и все работает!
Но есть один вопрос, при переходе на другую книгу Excel все восстанавливается, однако бывает момент когда панель инструментов видна но не "Зафиксирована".
Подскажите, пожалуйста, можно ли добавить в приведенный выше код алгоритм проверки: если в новой книге панель зафиксирована, то ничего не делаем, если нет, то собственно фиксируем?
Ирина, судя по описанию задачи, с вероятностью 99% вы это делаете в целях мошенничества ("угадаю результат игры заранее")
А мошенникам я не помогаю, так что ваш вопрос останется без ответа.
Добрый день! Мой макрос открывает определенные листы при наборе разных паролей. При закрытии файла срабатывает Private Sub Workbook_BeforeClose(Cancel As Boolean)- скрывает все листы, кроме Стартового, защищает лист и файл паролем. Мне нужно, чтобы при закрытии он убирал и Панель Экселя. и только при открытии Паролем администратора файла (в теле основного макроса) - была видна Панель. В Private Sub добавила строку - Application.DisplayFullScreen = False. В основном модуле - Application.DisplayFullScreen = True. не работает((
Как это можно сделать? Заранее большое спасибо! Ирина
Спасибо за ответ, макрос скрытия всех элементов (написанный Вами) срабатывает , далее запускается макрос макрос формирования панели инструментов( так же Ваш) , но в конечном итоге Вкладка Надстройка не видна на ленте, т.е. Условие "При необходимости можно отображать нужную панели инструментов, в то время, как остальные панели будут скрыты" НЕ выполняется.
В ексель я соединил два макроса Скрытие панели инструментов и формирование новой панели.Есть подозрение , что В Ексель 2010 эта процедура не работает.
Не получается что? Макрос запустить? или что-то другое?
я не телепат.
на форумах спросите, прикрепив свой файл с макросами, - тогда быстро помогут
(без файла - непонятно, что ы вас там за макросы, и как вы их запускаете)
Добрый день.Вы пишите"Тут ничего сложного нет - сначала запускаете макрос скрытия интерфейса, а следом за ним - макрос формирования панели инструментов" У меня такой вопрос-работает ли для Эксель 2010?
Я что только не пробовал, не получается. А все форумы дают ссылку на вашу статью.
За ранее спасибо.
Joann, с этим помочь не смогу (не знаю). Возможно, что никак не проверить (только через WinAPI если, - но там весьма сложный код)
Обратитесь на форумы по Excel, — может, там кто подскажет.
Каким условием проверить: Свернута-ли (не скрыта а свернута до пунктов меню) в настоящий момент лента?
Спасибо, у меня (отдельно Ваш код) тоже работает. Открываю книгу и на форме жму сразу "Выход" (без создания новой книги): закрывается. Открываю другую книгу - весь интерфейс на месте. Но стоит скопировать пару (Array) листов (только значения) и вставить в новую по FileSaveAs (новая активна в этот момент), закрыть старую без сохранения (срабатывает _BeforeClose, где и сидит RestoreInterface), то остаётся новая книга без формула и статус бара. Добавлял отдельно эти строки в конце процедуры уже после закрытия старой книги- не работает.
Только что проверил макрос в Excel 2003 и Excel 2010
Описанная вами проблема у меня не проявляется.
За видимость указанных панелей отвечает эта строка кода:
Проверьте, - может, вы изменили или удалили эту строку?
Пользуюсь кодом без .ExecuteExcel4Macro (для 2003). Есть непонятка: если в книге со спрятанным интерфейсом (а заодно и само окно программы), но видимой формой создать новую книгу и закрыть первую книгу с возвратом всего спрятанного, то остаётся видимой новая книга, но без StatusBar и FormulaBar. Приходиться ручками ставить видимость обратно. Почему так? Решение? (новая книга без макросов). Спасибо.
Это всё настраивается в том же XML, где вы прописали своё меню (задаётся видимость остальных вкладок) - никаких макросов тут не надо.
Или хотя бы чтоб оно по умолчанию грузилось.
спасибо! я и так свое меню сделал, только надо, чтобы только оно грузилось и все
Данный код может только скрыть \ отобразить ленту целиком.
Вообще, этот макрос разрабатывался для Excel 2003, просто в него была добавлена опция для Excel 2007.
Вкладки на ленте добавляются \ скрываются \ отображаются при помощи XML
Поищите в яндексе Ribbon editor
Т.е. вы в свой файл XLSM (XLSB) встраиваете этот XML - и при открытии файла автоматически отобразятся или скроются нужные вкладки.
PS: Сейчас уже можно не оставлять совместимость с Excel 2003 - времена его широкого распространения прошли.
Так что делайте своё меню (ленту) для Excel 2007\2010\2013, а не панели инструментов (которые работают и в старых версиях Excel).
а можно ли при загрузке книги оставить нужную закладку в ленте (например созданную самим "закладка1")?
Да, спасибо, панели восстановились, правда для этого пришлось макрос переносить в новый файл. Из старого это не получалось.
Спасибо за сайт. Он очень полезен нам, не самым большим специалистам в VBA.
Возник еще один вопрос. Если из файла в котором скрыты панели и окно переименовано, например, в "Наше окно", должен запускаться еще один файл, то возврат к основному файлу в макросе вызывает ошибку. Может в обращении к новому файлу следует изменить его имя на новое "Наше окно"?
Protsiv, панели не пропали, - они просто скрыты.
Впрочем, это неудивительно, - если вы запустили макрос для скрытия этих панелей.
Чтобы отобразить все панели инструментов, откройте прикреплённый к статье файл, и запустите макрос «ВосстановитьИнтерфейс»
У меня после выполнения этих макросов пропали все панели инструментов и все панели управления в Эксель-2003. Весит только строка формул.
Как вернуть все в стандартное состояние?
Тут ничего сложного нет - сначала запускаете макрос скрытия интерфейса, а следом за ним - макрос формирования панели инструментов
Private Sub Workbook_Open() ' открытие книги
УбратьВсё
ФормированиеПанелиИнструментов
End Sub
ВОТ ЭТА ЗАМЕЧАТЕЛЬНАЯ МЫСЛЬ! НО НЕ ПОЛУЧАЕТСЯ ОСТАВИТЬ ТОКА МЕНЮ НАДСТРОЕК, ПОЧЕМУ?
Поддерживаю. Аналогичная проблема. Я на свою панельку добавил кнопку сохранить, нажимаю ее и закрываю файл но все равно выскакивает окошка с предложением сохранить при этом уже отображаются заголовки строк и столбцов, листы, и пателька (файл, правка, вид. ). Подскажите как убрать запрос на сохранение а чтобы сохраняло автоматически без запроса?
У меня та же проблема в верхней части экрана синяя строка то появляется то нет.
Прекрасный сайт! Спасибо админу!
Есть глюк. Закрываем файл, в ответ на запрос о сохранении жмем "отмена" и разворачиваем ленту. Как избавиться? И как оставить кнопку печать? В VBA чайник, прошу объяснить подробно.
В 2003 все понятно со скрытием меню и программированием своего
А вот в 2007 и 2010 удается скрыть ленту, а дальше что-то я торможу как создать свое меню.
Вопрос еще такой: как запретить пользователю залезать в "параметры" в 2007 и 2010? и можноли отключить эту круглую кнопку в 2007 и "файл" в 2010?
Ваш сайт исключительно полезен для меня.
Лучшего я пока не встречал
Спасибо
С уважением, Raikhman
иа моем компе 2 версии офиса 2003 и 2010 (приходится иногда пользоваться и одной и другой)
активная всегда одна из них и это создает проблемы
есть такой код на vb6
Public Sub Main()
'On Error Resume Next
'Проверяем версию Excel
Set xlApp = New Excel.Application
xlApp.Visible = True
If Val(xlApp.Version) <> 14 Then
MsgBox "Необходим Excel-2010"
xlApp.Quit
Set xlApp = Nothing
Exit Sub
End If
если активен excel 2010 то продолжаем, а если нет, то выходим.
Проблема: если активен 2003, то для работы программы приходится переустанавливать десятку - это весьма нудно. гдето в реестре чтото есть для быстрого переключения, или чтото еще, но где?
Кроме Вас на форуме чтото все залипли
спасибо
Подскажите пожалуйста как скрыть не всю ленту, а только некоторые, конкретные вкладки, или как вариант, скрыть всю, а потом отобразить нужные.
Спасибо.
Тут ничего сложного нет - сначала запускаете макрос скрытия интерфейса, а следом за ним - макрос формирования панели инструментов
"При необходимости можно отображать нужную панели инструментов, в то время, как остальные панели будут скрыты)"
Может быть как это сделать всем очевидно, но я в затруднении.. нужно решение по котором оставалась бы только создаваемая пользовательская панель.. А как??
Сайт очень полезный и информативный!
Отличный макрос! Разработчику респект! Есть только один недостаток. При переходе с одного листа открытой книги на другой, а потом возврат на предыдущий - в верхней части экрана под заголовком окна появляется странная полоса. После выполнения последовательно макросов ВосстановитьИнтерфейс, УбратьВсё полоса пропадает, а потом снова появляется. Кроме того в Таблице настройки панелей инструментов появляется странное пустое окно выбора панели (без наименования, удалить которое невозможно. Можете что-либо прояснить по данному багу.
С уважением
Вадим
а можно проще, если надо только скрыть панели
Можно и так, конечно, но результат будет не совсем тот.
Во-первых, остаются видимыми заголовки строк и столбцов, полосы прокрутки, ярлычки листов, а в Excel 2003, помимо этого, еще и панели инструментов.
Так что упрощённый способ не даст такого результата, которого можно добиться при использовании функции ChangeInterface
Автоматическое скрытие определенного рабочего листа при открытии книги с кодом VBA
Если вы хотите скрыть один конкретный лист при открытии книги, вы можете применить следующий код VBA.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Слева Проект-VBAProject панели дважды щелкните значок ThisWorkbook , чтобы открыть пустой модуль, а затем скопируйте и вставьте в модуль следующий код:
Код VBA: скрыть определенный лист при открытии книги:
Внимание: В приведенном выше коде Sheet5 - это имя листа, который вы хотите скрыть при открытии. Пожалуйста, измените его по своему усмотрению.
3. Затем сохраните и закройте это окно кода и нажмите Файл > Сохранить как чтобы сохранить эту книгу как Excel Macro-Enabled Workbook формат, см. снимок экрана:
4. Когда вы откроете эту книгу в следующий раз, нажмите Включить контент сначала нажмите кнопку, а затем ваш указанный лист будет автоматически скрыт.
Автоматическое скрытие некоторых конкретных листов при открытии книги с кодом VBA
Если при открытии книги необходимо скрыть несколько рабочих листов, вот код также может вам помочь.
1. Сначала вы должны перечислить имена листов, которые вы хотите скрыть при открытии, в списке рабочего листа, а затем перейти к Поле имени дать им название диапазона -SheetsToHide, и нажмите Enter ключ, см. снимок экрана:
2. Затем удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
3. Слева Проект-VBAProject панели дважды щелкните значок ThisWorkbook , чтобы открыть пустой модуль, а затем скопируйте и вставьте в модуль следующий код:
Код VBA: скрыть некоторые конкретные рабочие листы при открытии книги:
Внимание: В приведенном выше коде SheetsToHide - это имя диапазона, которое вы создали на шаге 1.
4. Затем сохраните и закройте это окно кода и нажмите Файл > Сохранить как чтобы сохранить эту книгу как Excel Macro-Enabled Workbook формат. С этого момента, когда вы откроете эту книгу в следующий раз, указанные рабочие листы будут автоматически скрыты.
Поговорим как скрывать листы, а также как показывать скрытые листы в Excel, в том числе разберем как можно отобразить очень скрытые листы с помощью Visual Basic.
Время от времени возникает необходимость прятать листы в Excel либо от посторонних глаз других пользователей, либо уже от самих себя, чтобы эти самые листы не отвлекали и не мешали работать.
Также возникает и обратная необходимость — в частичном или полном отображении скрытых листов. В общем давайте рассмотрим различные способы реализации как скрытия, так и отображения листов.
Как показать скрытый лист в Excel?
Чтобы открыть скрытый лист обратно мы также в нижней панели правой кнопкой мыши щелкаем по любому из листов и выбираем команду Показать. В появившемся окне можно посмотреть все невидимые листы книги (даже если он всего один) и выбрать какой именно лист необходимо вывести на экран:
Со скрытием и отображением листов разобрались, давайте перейдем к чуть более сложной задаче, а именно научимся скрывать лист так, чтобы обычный пользователь не смог его отобразить.
Полезный Лайфхак в Excel
Чтобы запретить вставку новых строк и столбцов в Excel без использования защиты листа нужно сделать так:
- Перейдите в последнюю ячейку относительно строк и столбцов XFD1048576. Для этого можно ввести в поле имя адрес ячейки XFD1048576 и нажать Enter. А если лист пустой можно нажать комбинацию горячих клавиш CTRL+ → (стрелка влево) чтобы сместить курсор в последний столбец XFD1, а потом CTRL+ ↓ (стрелка вниз) смесит курсор в последнюю ячейку XFD1048576.
- Введите в последнюю ячейку XFD1048576 любое значение, можно даже пробел « ».
Вот и все теперь в лист нельзя вставить строку или столбец. Если нужно запретить вставлять только строки, тогда вводим любое значение в самую последнюю строку (например, A1048576). А если запретить вставлять только столбцы тогда вводим любое значение в последнем столбце (например, XFD1).
Надежное скрытие листов, которых нельзя отобразить стандартными средствами (опцией Показать). Полезные лайфхаки для работы с листами и ячейками.
Если Вы в своей рабочей книге Excel используете отдельный лист для хранения значений или формул, на которые ссылаются другие листы, то, возможно, захотите сделать этот лист невидимым. Отличная новость! В Excel Вы можете легко скрывать листы в рабочей книге.
Вы даже можете скрыть всю рабочую книгу полностью, хотя не очень понятно, зачем Вам это может понадобиться. Как бы там ни было, мы покажем Вам, как скрывать рабочие листы и книги, а также отображать их снова.
Как сделать очень скрытый лист в Excel?
Параметры отображения любого листа в Excel мы можем настроить посредством Visual Basic. Переходим в редактор Visual Basic (на панели вкладок выбираем Разработчик -> Код -> Visual Basic или воспользуемся комбинацией клавиш Alt + F11):
В левой верхней части окна в списке выбираем нужный нам лист и чуть ниже подробно смотрим в блок с настройками (если он изначально не отображается, то уже в панели вкладок Visual Basic выбираем View -> Properties Window и блок появится).
За отображение листа в параметрах отвечает свойство Visible и как мы видим всего есть 3 варианта:
- xlSheetVisible. Лист открыт и отображается во вкладках;
- xlSheetHidden. Лист скрыт, но отображается в списке невидимых листов;
- xlSheetVeryHidden. Лист скрыт и нигде не отображается.
Таким образом, чтобы скрыть лист средствами Visual Basic указываем значение параметра xlSheetHidden, а чтобы показать устанавливаем xlSheetVisible.
Из названия последнего значения xlSheetVeryHidden и взялся термин очень скрытого листа, но в принципе также часто можно встретить употребление выражение супер скрытого. При этом, что очень важно, установить значение параметра xlSheetVeryHidden можно только через Visual Basic, что и не позволяет обычному пользователю обнаружить очень скрытые листы стандартным способом.
Вернемся к нашему примеру.
Так как мы в начале скрывали Лист1, то для него установлена видимость xlSheetHidden, а нас сейчас интересует как раз 3 вариант. Выбираем его и теперь в списке скрытых листов пусто (кнопка в данном случае не активна, хотя мы знаем, что очень скрытые листы в книге на самом деле есть):
Теперь пользователь не увидит такой супер скрытый лист в интерфейсе Excel, однако он все же сможет его обнаружить если зайдет в редактор Visual Basic.
Если же стоит задача найти такие листы и отобразить их, то повторяем аналогичные действия и в Visual Basic для подобных листов устанавливаем параметр xlSheetVisible, после чего все листы станут видимыми.
Суперскрытые листы
Более сложный вариант, когда листы скрываются на уровне разработчика при помощи макросов. Предыдущим способом такие страницы не найти. Нам нужно подключить макросы VBA и включить режим разработчика.
Заходим в параметры Excel. На вкладке «Настроить ленту» устанавливаем маркер напротив «Разработчик».
Далее переходим во вкладку «Центр управления безопасностью» и кликаем на «Параметры центра…».
На вкладке «Параметры макросов» устанавливаем маркеры, как показано на скриншоте.
Нажимаем «ОК» в этом окне и в окне общих параметров.
В документе вызываем редактор макросов комбинацией клавишей Alt+F11.
Появляется список листов в левой панели. Например, у нас не отображается Лист 5. Нажимаем на него и переходим в самый низ – пункт Visible. Если этот лист суперскрытый, он будет иметь значение 2 – Very Hidden. Меняем это значение на 1 – Visible.
Редактор макросов можно теперь закрыть, изменения сохраняются автоматически. Теперь все суперскрытые листы должны отображаться на нижней панели навигации.
Скрываем рабочую книгу полностью
Чтобы полностью скрыть рабочую книгу Excel, перейдите на вкладку Вид (View).
В разделе Окно (Window) нажмите Скрыть (Hide).
Окно Excel останется открытым, но область таблицы станет пустой. Чтобы отобразить рабочую книгу, нажмите Вид > Окно > Отобразить (View > Window > Unhide).
Появится диалоговое окно Вывод на экран скрытого окна книги (Unhide) со списком открытых в настоящий момент рабочих книг. Если Вы скрывали рабочие книги, которые в данный момент не открыты, то их в этом списке не будет.
Если Вы скроете рабочую книгу и сохраните файл, то в следующий раз, когда откроете этот файл, книга по-прежнему будет скрыта. Книга будет оставаться скрытой до тех пор, пока Вы сами не отобразите её.
Замечание: Все листы, которые уже были скрыты на тот момент, когда Вы скрывали рабочую книгу, останутся скрытыми и, когда Вы отобразите эту книгу.
Правила перепечаткиЕще больше уроков по Microsoft Excel
Оцените качество статьи. Нам важно ваше мнение:
Для того чтобы можно было скрыть информацию от посторонних глаз, а может быть и от своих собственных, в Excel 2007 и выше предусмотрена возможность скрывать листы. При этом можно делать листы рабочей книги как скрытыми, так и очень скрытыми, а при необходимости делать их вновь видимыми, то есть отображать (показывать).
Скрываем листы
Чтобы скрыть лист (ярлычки в самом низу окна Excel), кликните правой кнопкой мыши по ярлычку, который нужно скрыть, и в контекстном меню нажмите Скрыть (Hide). Ярлычек исчезнет, но не удалится окончательно.
Нельзя скрыть все листы рабочей книги. Если Вы попытаетесь скрыть последний видимый лист, то получите вот такое предупреждение:
Книга должна содержать не менее одного видимого листа. Чтобы скрыть, удалить или перенести выделенные листы, необходимо сначала вставить новый лист или сделать видимым скрытый лист.
Чтобы отобразить лист, кликните правой кнопкой мыши по любой видимой вкладке и выберите в появившемся меню Показать (Unhide).
В появившемся диалоговом окне Вывод на экран скрытого листа (Unhide) выберите лист, который хотите сделать видимым, и нажмите ОК.
Замечание: За одно действие Вы можете сделать видимым только один лист.
Кроме этого, показать скрытые листы можно другим способом. Перейдите на вкладку Главная (Home). В разделе Ячейки (Cells) нажмите Формат (Format). В группе команд Видимость (Visibility) нажмите Скрыть и отобразить (Hide & Unhide) и в открывшемся меню выберите Отобразить лист (Unhide Sheet).
Появится диалоговое окно Вывод на экран скрытого листа (Unhide). Выберите нужный лист и нажмите ОК, как было описано выше.
Как скрыть несколько листов
Процедура скрытия нескольких листов, по сути, практически ничем не отличается от тех, что описаны выше. Однако, прежде чем приступить к ней, нужно выделить все листы, который следует спрятать.
- Если листы расположены подряд, нам пригодится клавиша Shift. Выбираем первый лист, зажимаем клавишу Shift, и не отпуская ее щелкаем по последнему листу, затем отпускаем клавишу. Выделение можно выполнить и в обратном направлении – от последнего к первому. Естественно, речь идет о первом и последнем листах, которые нужно скрыть.
Отображение всех листов, выборочное отображение и скрытие листов по маске
Представленная ниже надстройка для Excel позволяет облегчить и ускорить некоторые манипуляции, совершаемые с листами рабочих книг. Надстройка позволяет:
1) Делать скрытыми все листы, кроме активного;
2) делать очень скрытыми все листы кроме активного;
3) отображать все скрытые листы разом, не зависимо от того скрытые они или очень скрытые;
4) скрывать и отображать листы по маске, используя специальные символы совпадения для имен листов.
видео по работе с надстройкой
макрос (надстройка) для быстрого скрытия и отображения листов
Файл программы Microsoft Excel называется КНИГА. А книга, как водится, состоит из листов. Их количество по умолчанию – 3, но создавать можно столько, сколько нужно. Ярлычки листов можно легко переключать одним кликом: они показываются в левом нижнем углу книги и называются стандартно: ЛИСТ1, ЛИСТ2 и т.п. Можно переключать комбинацией горячих клавиш CTRL+ PageUp (PageDown). Но это не всегда удобно. Да и почему их не видно ярлыков? Разберемся с настройками.
Как вернуть ярлычки
Посмотрим, как должна выглядеть книга, чтобы в ней можно было легко переходить с одного листа на другой. Вот они. Это левый нижний угол книги Excel по умолчанию.
Но у кого-то в нижнем левом углу может быть совсем другая картина.
Что делать в таком случае, когда при открытии книги в ней не обнаруживается панели с закладками? Нужно настроить Excel. Ели у вас 2007-я версия программы, путь к нужным настройкам находится в OFFICE (располагается слева сверху, в самом углу книги) – ПАРАМЕТРЫ EXCEL – ДОПОЛНИТЕЛЬНО – ПОКАЗАТЬ ПАРАМЕТРЫ ДЛЯ СЛЕДУЮЩЕЙ КНИГИ. Здесь находим строчку ПОКАЗЫВАТЬ ЯРЛЫЧКИ и ставим галочку. Нажимаем ОК.
После этого листы появятся в нижнем левом углу книги. Если у вас Excel 2003, то путь таков: СЕРВИС – ПАРАМЕТРЫ – ВИД. Для версий 2010-2013: ФАЙЛ – ПАРАМЕТРЫ – ДОПОЛНИТЕЛЬНО.
Как скрыть и отобразить ярлыки листов
Есть в Excel и другая функция. Можно скрывать и отображать листы на имеющейся панели с закладками. Это может пригодиться при необходимости создания большого количества листов, когда для поиска нужного приходится пользоваться стрелочками.
В этом случае временно ненужные листы можно скрыть, чтобы они не занимали место на панели.
Это делается очень просто. Предположим, что нам надо скрыть 10, 11 и 12 лист. Для этого кликаем сначала по десятому листу правой кнопкой и выбираем СКРЫТЬ.
Аналогично поступаем с одиннадцатым и двенадцатым. Получается следующее.
Листы скрыты, но не удалены. Информация на них также сохранена. И если мы попробуем переименовать ЛИСТ13 в ЛИСТ10, программа не даст этого сделать.
Придется придумывать листу другое имя. Или оставить все как есть.
Возвращаются скрытые листы на места аналогичным образом. Правой кнопкой кликаем на любой видимый лист и выбираем ПОКАЗАТЬ. Программа покажет список скрытых листов и предложит выбрать тот, который нужно отобразить. Задать команду одновременно для всех листов нельзя. Нужно делать это поочередно.
Скрывать, а также удалять абсолютно все листы нельзя. Видимым должен остаться хотя бы один.
Читайте также: