Excel VBA Protect Sheet

Захист робочого аркуша є важливим завданням для тих, хто дуже часто працює в Microsoft Excel. Це завдання, яке потрібно захистити аркуш від редагування іншим користувачем. Припустимо, ви надсилаєте звіт керівництву, а потім керівництво свідомо чи помилково змінює параметри або значення через звіт. Виявляти помилку стає неспокійним, а в той же час переробка - це те, що вимагає вашого часу. Щоб подолати цю проблему, завжди корисно захистити аркуш / лист для редагування за допомогою пароля. Ця опція допомагає вам, не дозволяючи користувачеві вносити будь-які зміни в аркуші. Ви також можете поділитися паролем з людиною, яка призначена, а також уповноваженою вносити зміни. Хоча Excel має опцію Protect Worksheet в ньому на вкладці «Огляд», присутній на стрічці Excel, вона стає неспокійною, коли у вас є більше одного аркуша для захисту. Це витратить достатньо вашого часу, захищаючи кожен лист один за одним. Натомість, є хорошою практикою писати код VBA, який може захистити один чи декілька аркушів із вашої робочої книги для редагування.

Синтаксис захищеного листа VBA

Ця вбудована функція VBA, пов’язана з Workheet, дозволяє захистити аркуш за допомогою пароля. Синтаксис функції VBA Protect Sheet наведений нижче:

Усі параметри в цій функції необов’язкові, про що можна вгадати через квадратні дужки, згадані для кожного з них.

  • Пароль: Вказує пароль для аркуша. Якщо це не передбачено, аркуш буде захищений без пароля, і користувач може редагувати його, не вимагаючи пароля.
  • DrawingObjects: необов'язкові аргументи, які дозволяють захистити різні форми робочого аркуша. Приймає булеві значення. За замовчуванням встановлено значення FALSE.
  • Зміст: Необов’язковий аргумент. Захищає всі об'єкти. За замовчуванням значенням встановлено значення TRUE.
  • Сценарії: захищає всі різні сценарії. Значення за замовчуванням встановлено на TRUE.
  • UserInterfaceOnly: Він захищає інтерфейс користувача, але не макроси. Значення за замовчуванням - TRUE, якщо макрос ігнорується, а також користувальницький інтерфейс буде захищений.
  • AllowFormattingCells: за замовчуванням встановлено значення FALSE, через що користувач не може форматувати комірки аркуша. Якщо встановлено TRUE, користувач може відформатувати комірки з аркуша.
  • AllowInsertingColumns: Значення за замовчуванням встановлено на FALSE. Якщо встановлено TRUE, користувач може вставити стовпець у аркуш.
  • AllowInsertingRows: за замовчуванням встановлено значення FALSE. Якщо встановлено TRUE, користувач може вставити рядки в аркуш.
  • AllowInsertingHyperlinks: Значення за замовчуванням встановлено на FALSE. Якщо встановлено TRUE, користувач може вставити гіперпосилання на аркуш.
  • AllowDeletingColumns: Значення за замовчуванням встановлено на FALSE. Якщо встановлено TRUE, користувач може видалити будь-який стовпець з аркуша.
  • AllowDeletingRows: за замовчуванням встановлено значення FALSE. Якщо встановлено TRUE, користувач може видалити з аркуша будь-яку кількість рядків.
  • AllowSorting: за замовчуванням встановлено значення FALSE. Якщо встановлено TRUE, користувач може сортувати дані, наявні на аркуші.
  • Дозволити фільтрування: за замовчуванням встановлено значення FALSE. Якщо встановлено TRUE, користувач може фільтрувати дані, наявні на аркуші.
  • AllowUsingPivotTables: за замовчуванням встановлено значення FALSE. Якщо встановлено TRUE, користувач може використовувати та змінювати зведені таблиці.

Як захистити лист у Excel VBA?

Нижче наведено різні приклади захисту аркуша в Excel за допомогою VBA Protect.

Ви можете завантажити шаблон VBA Protect Sheet Excel тут - шаблон VBA Protect Sheet Excel

Захисний лист VBA - приклад №1

Припустимо, у робочій книжці під назвою "Захисний лист VBA" аркуш, названий як "Приклад 1". Ми хочемо, щоб цей аркуш був захищений паролем. Для цього виконайте наступні кроки:

Крок 1: Вставте новий модуль у Visual Basic Editor (VBE). Клацніть на Вставити > виберіть Модуль .

Крок 2: Визначте нову підпроцедуру в модулі.

Код:

 Sub Example_1 () Закінчення Sub 

Крок 3: Тепер ми повинні використовувати функцію Protect, яка може бути застосована до об'єкта під назвою Workheet. Запустіть код об'єктом " Листи" та введіть ім'я робочого листа в круглі дужки, які ви хочете захистити.

Код:

 Sub Example_1 () Робочі таблиці ("Приклад 1") Кінець підряд 

Крок 4: Тепер поставте крапку після закриття дужок і використовуйте ключове слово Protect, яке ініціює процес захисту аркуша під назвою « Приклад 1 ».

Код:

 Sub Example_1 () Робочі таблиці ("Приклад 1"). Захистити Кінцевий підзаголовок 

Ви можете зупинитися тут, захищаючи простирадло. Оскільки всі аргументи необов’язкові, ваш аркуш все ще буде захищений, але не буде просити користувача ввести пароль перед редагуванням і буде таким самим, як незахищений аркуш. Ви точно не хотіли б цього. Тому додайте надійний пароль для захисту цього аркуша на наступному кроці.

Крок 5: Введіть ключове слово пароль і використовуйте надійний пароль для захисту цього аркуша.

Код:

 Sub Example_1 () Робочі таблиці ("Приклад 1"). Захистити пароль: = " " Закінчити Sub 

Ми будемо використовувати лише перший аргумент функції, яка називається паролем, а для решти всіх аргументів ми підемо зі значеннями за замовчуванням.

Крок 6: Це все, ви можете запустити цей код, натиснувши кнопку F5 або Запустити, і побачите, що файл захищений, і запитаєте пароль користувача, як тільки він спробує відредагувати будь-яку з комірок.

Так ми захищаємо аркуш за допомогою функції VBA Protect.

Захисний лист VBA - приклад №2

Тепер ми хочемо захистити всі аркуші, присутні в робочій книжці. Для цього виконайте наступні кроки:

Крок 1: Визначте підпроцедуру в модулі.

Код:

 Sub Example_2 () Кінець Sub 

Крок 2: Визначте нову змінну як робочий аркуш, використовуючи Dim.

Код:

 Sub Example_2 () Dim wrk_sht As End Workheet End Sub 

Крок 3: Почніть цикл For. Цей цикл повинен працювати до останнього робочого аркуша Active Workbook.

Код:

 Sub Example_2 () Dim wrk_sht як робочий лист для кожного wrk_sht в ActiveWorkbook.Worksheets End Sub 

Цей рядок коду вибирає кожен робочий аркуш активної робочої книги та зберігає її під змінною wrk_sht для кожної ітерації циклу. Цикл закінчується, як тільки вибирається останній аркуш робочої книги і зберігається у змінній wrk_sht. Нам потрібно визначити операцію для цього циклу. Це, безумовно, буде захищати аркуш за допомогою пароля.

Крок 4: Тепер використовуйте функцію Protect для захисту аркушів, що зберігаються під змінною wrk_sht, для кожної ітерації циклу For.

Код:

 Sub Example_2 () Dim wrk_sht як робочий лист для кожного wrk_sht в ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " End Sub 

Крок 5: Використовуйте оператор Next, це дозволяє циклу працювати, поки кожен робочий аркуш не буде захищений.

Код:

 Sub Example_2 () Dim wrk_sht як робочий лист для кожного wrk_sht в ActiveWorkbook.Worksheets wrk_sht.Protect Password: = " " Next End Sub 

Якщо ви запускаєте цей код, кожен аркуш активної робочої книги буде захищений паролем, і вам потрібно вводити його щоразу, коли ви бажаєте редагувати аркуші.

Що потрібно пам’ятати

  • Рекомендується використовувати пароль, захищаючи аркуш. В іншому випадку користувачеві не буде запропоновано ввести пароль, і він може безпосередньо редагувати файл, хоча ви його захистили.
  • Рекомендується запам'ятати пароль. В іншому випадку забуття того ж самого ніколи не дозволить вам редагувати файл. Можливо, вам доведеться пройти різні методи, якщо ви втратите пароль, і ці методи виходять за межі цієї статті.

Рекомендовані статті

Це посібник із захищеного листа VBA. Тут ми обговорюємо, як захистити або заблокувати аркуші за допомогою функції VBA Protect в Excel разом з практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. Як перейменувати аркуш у Excel VBA?
  2. Крок до заборони захищеного аркуша в Excel
  3. Активаційний лист VBA (приклади з шаблоном Excel)
  4. Як скопіювати лист Excel?

Категорія: