Автозапуск макросу при відкритті або закритті книги excel

Як запустити макрос при відкритті або закритті книги Excel?

Іноді потрібно виконати деякі дії або розрахунки при запуску робочої книги в Excel. У цій статті розглянемо на прикладі простого запиту пароля як реалізується автозапуск макросу в Excel.
Хочу відразу зазначити, запуск макросу відбудеться тільки в разі якщо в настройках безпеки (Сервіс - Макрос - Безпека) обраний низький або середній рівень безпеки. При середньому рівні користувач повинен не відключати макроси при запиті.

Отже, Excel запущений, книга створена, VBE відкритий (Alt + F11).

У вікні Project Explorer (Ctrl + R) знаходимо нашу книгу

Автозапуск макросу при відкритті або закритті книги excel

в моєму випадку це Кніга2. Розгортаємо групу об'єктів "Microsoft Excel Objects" і знаходимо об'єкт "ЕтаКніга"

Автозапуск макросу при відкритті або закритті книги excel

Тепер створимо форму в нашій книзі (як це зробити читаємо тут). На форму додамо дві кнопки (CommandButton) і TextBox. Зразковий вид наступний:

Автозапуск макросу при відкритті або закритті книги excel

Ця форма буде з'являтися при відкритті книги, в яку користувачеві необхідно ввести пароль.
Введення пароля завжди ховається зірочками, точками і т.д. Зробимо і ми теж саме. Для цього виділіть TextBox і в його властивостях (вікно Properties) знайдіть пункт PasswordChar. В його значення ви можете поставити будь-який символ, ці символи будуть відображатися при введенні. Не будемо відступати від традицій, поставимо знак "зірочки"

Автозапуск макросу при відкритті або закритті книги excel

Код для кнопки "Продовжити" наступний:

Private Sub CommandButton1_Click ()
If TextBox1.Text = "123" Then UserForm1.Hide _
Else MsgBox "Ви ввели невірний пароль! Спробуйте ще раз."
End Sub

KDEboroda (гість)

Вітаю.
Це виведено для прикладу. ) Але ускладнити цілком можна, наприклад робимо все листи прихованими (через властивості VBA!), А один лист залишаємо пустушкою. Макрос при введенні коректного пароля буде ці листи відкривати, а пустушку приховувати. І ось тут якщо макроси відрубати, то користувач побачить тільки порожній лист, інші відобразити можна тільки через VBA (через стандартні методи відображення листа вони не видимі). Звичайно, і тут є ньанси, але коло умільців значно зменшиться :)