Некоторые разработчики предпочитают показывать информацию при запуске своих приложений. Эта информация называется заставкой. Например, вы, вероятно, видели заставку при запуске Excel. В этой статье рассмотрим, как создать такую заставку с использованием VBA в Excel.
Пошаговая инструкция
Откройте Excel и создайте новую рабочую книгу, где будет размещена ваша заставка.
Откройте редактор Visual Basic для приложений (VBE) с помощью комбинации клавиш Alt + F11.
Создайте пользовательское диалоговое окно, которое будет использоваться как заставка. Вставьте новый UserForm, который автоматически получит имя UserForm1.
Добавьте элементы управления на UserForm, такие как:
Image: Для отображения логотипа или картинки.
Label: Для вывода текста или другой информации (сами придумайте).
📌 Скачать файл пример, можно в конце статьи.
Для загрузки картинки, в свойствах Picture элемента Image выберите кнопку с тремя точками:
В появившемся диалоговом окне выберите подготовленную картинку с подходящим расширением (jpg подходит) и нажмите Открыть:
В модуле ЭтаКнига (ThisWorkbook) добавьте следующую процедуру:
☝ Эта процедура запустит показ UserForm при открытии рабочей книги.
В модуле кода UserForm1 добавьте процедуру для автоматического закрытия формы через три секунды:
☝ Эта процедура использует метод OnTime объекта Application для вызова процедуры ЗакрытиеФормы через три секунды. Давайте разберём:
- Application.OnTime: Это метод объекта Application, который используется для планирования выполнения процедуры в указанное время.
- Now: Функция Now возвращает текущее дату и время.
- TimeSerial(0, 0, 3): Функция TimeSerial создает значение времени. В данном случае, аргументы функции TimeSerial(0, 0, 3) означают "0 часов, 0 минут, 3 секунды". То есть, функция возвращает значение, представляющее три секунды.
- Now + TimeSerial(0, 0, 3): Эта часть кода складывает текущее время (возвращаемое функцией Now) и три секунды (возвращаемые функцией TimeSerial). В результате получается время, которое наступит через три секунды от текущего момента.
- "ЗакрытиеФормы": Это имя процедуры, которую нужно выполнить в указанное время.
Вставьте следующую процедуру в общий модуль VBA:
☝ Эта процедура выгружает UserForm1 из памяти, тем самым закрывая заставку.
Для возможности ручного закрытия заставки, добавьте кнопку на UserForm1, которая автоматически примет название CommandButton1:
Установите её свойство Cancel равным True, чтобы кнопка могла закрыть UserForm.
В модуле кода UserForm1 добавьте следующую процедуру:
☝ Это позволяет пользователю закрыть заставку вручную, не дожидаясь окончания таймера.
Если необходимо, чтобы заставка отображалась немодально (не блокируя остальные действия), измените процедуру Workbook_Open следующим образом:
☝ Теперь UserForm будет отображаться немодально, позволяя пользователю продолжать работу в Excel, пока показывается заставка.
Подведем короткий итог. Создание заставки в Excel с помощью VBA может быть весьма полезным инструментом для отображения информации или логотипов при запуске приложения. Следуя этим шагам, вы можете создать свою собственную заставку, которая будет автоматически показываться и закрываться через заданное время.