Заставка при відкритті книги excel

Цей прийом дозволить Вам виводити на екран вікно-заставку при відкритті будь-якої заданої книги в Excel.

Заставка при відкритті книги excel

Заставка з'являється відразу після відкриття файлу і автоматично зникає через кілька секунд.

Крок 1. Створюємо екранну форму

Заставка при відкритті книги excel

Натисніть кнопку Image і розтягніть на формі прямокутник - в нього буде поміщено фонове зображення. Потім на панелі інструментів Properties (якщо у вас її не видно, то виберіть в меню View - Properties) задайте виберіть файл картинки в поле Picture:

Можливо, доведеться трохи змінити розмір форми, щоб зображення вмістилося повністю. Щоб написати на формі текст, можна використовувати елемент управління Label з панелі Toolbox.

Ну, і нарешті, виділивши попередньо всю форму, можна задати текст в рядку заголовка, використовуючи властивість Caption в панелі Properties:

В результаті у вас повинно вийти щось подібне:

Заставка при відкритті книги excel

Крок 2. Додаємо керуючий код

Клацніть правою кнопкою миші по формі і виберіть View Code. У відкрився модуль форми додайте такий код:

Відкрийте модуль ЕтаКніга в лівому верхньому кутку (якщо її не видно - відобразите відповідне вікно через меню View - Project Explorer) і додайте в нього наступний код:

І, нарешті, вставте звичайний модуль (Insert - Module) і скопіюйте туди це:

Як це працює?

При відкритті книги Excel виконує процедуру Workbook_Open з модуля ЕтаКніга. Ця процедура відображає на екрані нашу форму-заставку. При відображенні форми запускається процедура UserForm_Activate. яка з затримкою в 5 секунд запускає макрос KillTheForm. який прибирає форму з екрану.

Посилання по темі

Добрий день, не могли б ви підказати, чому при додаванні такої заставки міг поламатися автобекап, створений повністю по уроку:
Створення резервних копій цінних файлів Поламався він так, що не видає ніяких помилок, просто не з'являється файл в папці збереження.

Напевно це щось пов'язане зі створенням Userform, і конфліктом у виконанні модуля з бекапу і форми. Спочатку я перейменував форму, природно, помінявши всі необхідні посилання на неї в поточній книзі і модуле2. Виявив проблему з резервних копій. Подумав, вирішив, може бути, макроси виконуються при запуску в ієрархічності порядку, перейменував userform так, щоб в списку модулів він відображався пізніше модуля бекапа. Не допомогло. Виникла наступна ідея. Видалив модуль2, що відноситься до картинки, макрос звідти додав в модуль1 (бекап). Теж не допомогло. Картинка як працювала, так і працює, але бекап не зберігається. Нових ідей у ​​мене, на жаль, поки не виникло. Походу доведеться видаляти заставку, так як функція бекапа, об'єктивно, важливіше всяких картіночек.

Микола, звертаюся до вас за порадою, може бути ви знаєте, в чому проблема, і сподіваюся, що ви побачите і відповісте. Заздалегідь дякую.

upd. Питання вирішив, додавши в макрос в ЕтаКніга рядок Module1.auto_open.

p.s. Я тикати в vba як сліпе кошеня, але найчастіше це приносить свої плоди.

Схожі статті