Как в excel скрыть лист с паролем
Скрыть лист в списке скрытых листов Excel
Скрывать листы можно используя контекстное меню, вызванное правой кнопкой мышки по ярлычку листа. Как было описано в предыдущем уроке. Но листы можно скрывать так, чтобы их не было видно даже в списке скрытых листов. Причем без использования защиты структуры книги. Для реализации данной задачи нужно воспользоваться параметрами, которые доступны в режиме VBA-редактора (Alt+F11).
Как лучше скрыть лист в Excel
Для наглядности разберем пример. Скройте «Лист3» обычным способом (с помощью опции «Скрыть» в контекстном меню).
А «Лист2» скроем параметрами VBA-редактора макросов. Для этого выполним следующие действия:
- Откройте VBA-редактор, нажав комбинацию горячих клавиш Alt+F11.
- В окне «Project» выберите «Лист2». А в окне «Properties» найдите свойство «Visible» и выберите ему параметр «2-xlSheetVeryHidden». И закройте окно редактора.
- Чтобы показать скрытые листы Excel, щелкните правой кнопкой мышки по ярлычку листа и выберите опцию «Показать».
В списки скрытых листов мы не видим наш «Лист3». Он надежно спрятан. Чтобы снова его увидеть нужно зайти в VBA-редактор и поменять параметры в свойстве «Visible» на «-1-xlSheetVisible».
Примечание. Третий параметр «0-xlSheetHidden» дает тот же результат что и обычное скрытие листа при помощи контекстного меню.
Полезный совет. Визуально можно скрыть ярлыки листов:
- С помощью настроек параметров: «Файл»-«Параметры»-«Дополнительно»-«Показывать ярлычки листов».
- С помощью расширения горизонтальной прокрутки, как показано на рисунке:
Но и в первом и во втором случаи между листами можно переключатся с помощью комбинации горячих клавиш CTRL+PageUp и CTRL+PageDown.
Полезный Лайфхак в Excel
Чтобы запретить вставку новых строк и столбцов в Excel без использования защиты листа нужно сделать так:
- Перейдите в последнюю ячейку относительно строк и столбцов XFD1048576. Для этого можно ввести в поле имя адрес ячейки XFD1048576 и нажать Enter. А если лист пустой можно нажать комбинацию горячих клавиш CTRL+ → (стрелка влево) чтобы сместить курсор в последний столбец XFD1, а потом CTRL+ ↓ (стрелка вниз) смесит курсор в последнюю ячейку XFD1048576.
- Введите в последнюю ячейку XFD1048576 любое значение, можно даже пробел « ».
Вот и все теперь в лист нельзя вставить строку или столбец. Если нужно запретить вставлять только строки, тогда вводим любое значение в самую последнюю строку (например, A1048576). А если запретить вставлять только столбцы тогда вводим любое значение в последнем столбце (например, XFD1).
Надежное скрытие листов, которых нельзя отобразить стандартными средствами (опцией Показать). Полезные лайфхаки для работы с листами и ячейками.
Запрет доступа к листу Excel с помощью пароля
В Microsoft Excel 2003 есть возможность запрета доступа ко всему файлу с помощью пароля, но иногда требуется запретить доступ к определенному листу в Excel. В этой статье я опишу свой способ, как можно поставить пароль на определенный лист.
Для начала расскажу, что я хочу реализовать. Вы открываете файл Excel и попадаете на определенный лист, доступ к которому Вы имеете, и при переходе на другой лист, на котором стоит пароль, будет выскакивать формочка для ввода пароля, при этом содержимое листа будет скрыто. Другими словами пользователь, который не должен, иметь доступ к этому листу не будет видеть, что там есть, но если пользователь просто случайно нажал на этот лист, у нас будет кнопочка возврата на исходный лист. Все это будет реализовано на VBA (Visual Basic for Applications).
Ставим пароль на доступ к листу Excel
Ну, давайте начнем, откройте Excel и сохраните его, допустим под названием «Пароль на лист». Затем на первом листе, в центре напишите «Секретные данные», а на Листе2 напишите «Общедоступный лист».
После этого нажимайте ALT+F11 для перехода в редактор Visual Basic. Затем нажмите Insert->UserForm (для добавления в проект формы). Добавьте на форму две кнопки и одно текстовой поле.
Измените свойство Caption кнопки CommandButton1 на «Ввод», а кнопки CommandButton2 на «Вернуться назад». Также измените значение Caption нашей формы (UserForm1), скажем на «Для продолжения введите пароль». Измените свойство TextAlign, нашего текстового поля TextBox1, на 2, т.е. выравнивание текста по центру. Также можете изменить шрифт и размер текста в свойстве Font. А еще в свойстве Text (объекта TextBox1) впишите «Введите пароль», чтобы по умолчанию загружался этот текст.
Если Вы все сделали правильно, то у Вас внешний вид должен получиться примерно вот таким (за исключением размера объектов):
Код VBA для запрета доступа к листу Excel
Затем впишите вот такой код в окно кода формы:
Теперь осталось вызывать эту форму при активации листа, для этого в редакторе VB выберите лист, на который Вы хотите поставить пароль, щелкните два раза по нему, у Вас откроется окно кода, Вы вставляете туда вот это:
Еще, для того чтобы по умолчанию всегда открывался общедоступный лист, также в редакторе выберите «Эта книга» откройте редактор кода (двойным щелчком) и вставьте вот это:
Можно еще запретить изменять пароль пользователем, т.е. допустим, с этим файлом работает человек, который немного разбирается в Excel, и он легко может зайти в редактор Visual Basic и изменить пароль. Для того чтобы этого избежать поставим пароль на редактирования VBA проекта. В редакторе Visual Basic нажмите правой кнопкой на VBAProject, откроется меню, в нем выберите Properties. Далее в следующем окне перейдите на вкладку Protection, поставьте галочку как на картинке и введите пароль.
После этого редактировать код всех макросов, т.е. код Visual Basic сможете только Вы, или тот человек, который знает пароль на проект VBA.
Если Вы все сделали правильно, то у Вас при открытие файла будет открываться «Лист2», а при попытке перейти на «Лист1» будет запускаться форма для ввода пароля, а при нажатие кнопки «Вернуться назад», Вы будете возвращаться на «Лист2».
Программка достаточно примитивная, но начинающим программистам VBA она может помочь в развитие своих более сложных и более нужных программ. Так как Вы ее легко можете изменить, дополнить или использовать совершенно в других целях. Надеюсь, она Вам хоть немного помогла!
Суперскрытый лист
Иногда некоторые листы в книге приходится скрывать от глаз пользователей. Классический способ предполагает скрытие листа через меню Формат — Лист — Скрыть или правой кнопкой по ярлычку листа — Скрыть (Hide) :
Проблема в том, что пользователь, зайдя в меню Формат — Лист — Отобразить или щелкнув правой кнопкой мыши по ярлычку любого листа и выбрав Показать (Unhide) , будет видеть имена скрытых листов и понимать, что часть информации от него скрыта:
Поэтому лучше сделать так, чтобы пользователь и не догадывался о присутствии в книге каких-то скрытых листов. Для этого открываем редактор Visual Basic:
- в Excel 2003 и старше — выбрав в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor)
- в Excel 2007 и новее — нажав на кнопку Редактор Visual Basic (Visual Basic Editor) на вкладке Разработчик (Developer) или нажав ALT+F11
Ищем на экране вот такое окно:
Если его не видно, то можно его отобразить через меню View — Project Explorer (верхняя часть) и View — Properties Window (нижняя часть).
В верхней части на «дереве» находим и выделяем наш лист (на картинке — Лист1), а в нижней части находим свойство Visible (в конце списка) и делаем его xlSheetVeryHidden.
Вуаля! Теперь увидеть этот лист и узнать о его существовании можно только в редакторе Visual Basic и ни в каких окнах и менюшках Excel он отображаться не будет. Меньше знаешь — крепче спишь. 🙂
Как сделать лист очень скрытым
Иногда возникают ситуации, когда надо скрыть лист со всем его содержимым от посторонних любопытных глаз. Очень часто это делается из контекстного меню листа (для счастливых обладателей 2007 Excel. Подробнее: здесь). Но при использовании данного метода необходимо защитить книгу, иначе отобразить скрытые листы сможет каждый (тем же правым щелчком мыши — Отобразить). А что делать, если книгу не надо защищать? Ведь часто необходимо оставить пользователям возможность работы со структурой книги, например, добавлять листы. Как тогда скрыть лист так, чтобы его нельзя было отобразить? Есть достаточно простой способ через редактор VBA, при этом обладать навыком программирования вообще не нужно. Итак, определились какой лист надо скрыть. Далее:
- заходим в редактор VBA(Alt+F11)
- жмем сочетание клавиш Ctrl+R или идем в меню View—Project Explorer (чтобы отобразить окно объектов проекта VBA)
- жмем F4 или через View—Properties Window (чтобы отобразить окно свойств)
- в левой части окна (в Project Explorer) ищем книгу, лист в которой надо скрыть и раскрываем её папку(на скрине это VBA Project (Книга1))
- раскрываем папку Microsoft Excel Objects и выделяем там лист с нужным именем
- в Окне свойств (Properties Window) находим свойство Visible и назначаем ему значение xlSheetVeryHidden
Чтобы затем отобразить этот лист необходимо свойству Visible задать значение — xlSheetVisible. При этом для отображения листа необходимо будет обязательно зайти в редактор VBA — простым методом отобразить не получится. И книгу защищать не надо. Что нам и было необходимо.
Для большей надежности можно защитить проект VBA, чтобы не было возможности отобразить лист из VBA, не указав пароль. На функционал это не повлияет совершенно.
В том же окне VBA(Alt+F11):
- Tools—VBAProject Properties-вкладка Protection;
- для защиты устанавливается галочка «Lock project for viewing«; для разблокировки — снимается;
- вписывается/удаляется сам пароль в полях Password и Confirm password.
Скрыть все листы в книге, кроме листа с именем «Видимый» можно следующим макросом:
Как скрыть листы от большинства пользователей Excel
О чем идет речь
В Excel имеется три уровня видимости листов: видимый, скрытый и очень скрытый. Видимый лист отображается в списке листов листов книги. Скрытый лист не отображается в перечне, однако его можно отобразить стандартными методами. Так называемый Очень скрытый режим, который установить и снять можно только с использованием макросов. Очень скрытые листы не отображаются в перечне листов, более того они не отображаются в диалоговом окне «Вывод на экран скрытого листа».
Так как об этом способе не знают большинство пользователей Excel, то им удобно пользоваться если необходимо спрятать часть информации.
Как сделать лист очень скрытым
Способ №1. Через надстройку VBA-Excel
Самый удобный способ, который не требует специальных знаний, а также позволяет быстро скрыть большое количество листов — установить надстройку VBA-Excel. Для того, чтобы скрыть или отобразить листы в Excel необходимо:
- Перейти на вкладку VBA-Excel (доступна после установки надстройки).
- В меню Диспетчеры выбрать пункт Диспетчер листов.
- В окне диспетчер выберите листы, видимость которых необходимо изменить и нажмите команду Видимость.
Способ №2. С помощью свойства листов в редакторе кода
Для того чтобы скрыть лист необходимо:
- Открыть редактор кода сочетанием клавиш Alt+F11.
- В левом меню раскройте проект с одноименным названием вашей книги.
- Найдите в списке объектов лист, который необходимо скрыть.
- В списке свойств найдите свойство Visible и выберите из списка значений 2 — xlSheetVeryHidden.
Для отображения скрытого листа можно аналогичным способом установить значение -1 — xlSheetVisible.
Способ №3. С помощью макросов
Можно сказать, что это самый сложный способ, однако и более универсальный. С помощью программирования можно задавать различные условия скрытия листов и многое другое. Но остановимся пока только на скрытие/отображении.
- Открыть редактор кода сочетанием клавиш Alt+F11.
- В левом меню раскройте проект с одноименным названием вашей книги.
- Создайте новый модуль (если его у вас еще нет), в котором мы будем писать код для скрытия листов.
- Перейдите в модуль и вставьте в него следующий код: