Трюк №85. Создание всплывающего экрана для рабочей книги Excel
Всплывающие экраны придают приложению дополнительную каплю изысканности, не говоря уж о том, что они развлекают вас, пока приложение загружается. Почему бы рабочему листу не делать то же самое? Для создания всплывающего экрана для любой книги можно воспользоваться возможностями VBA. Вы увидите, что процесс намного проще, чем вы могли подумать.
Чтобы создать всплывающий экран, который отображается 5-10 секунд, пока рабочая книга открывается, а затем автоматически закрывается, нажмите сочетание клавиш Alt/Option+Fll или выберите команду Разработчик → Редактор Visual Basic (Developer → Visual Basic Editor), чтобы открыть VBE. Затем выберите команду Insert → UserForm. Если панель инструментов Control не отображается, выберите команду View → Toolbox, чтобы ее увидеть.
На панели инструментов щелкните элемент управления Label. (Чтобы увидеть название каждого элемента управления, проведите над ними указателем мыши и задержите над каждым непродолжительное время.) Щелкните в любом месте объекта UserForm, чтобы вставить метку. Перемещая маркеры размера, выберите такой размер метки, чтобы в нее можно было ввести небольшой текст. Не снимая выделения метки, щелкните ее. Если метка не выделена, дважды медленно щелкните ее. Теперь она должна войти в режим редактирования, в котором можно выделить надпись по умолчанию Label 1.
На этой метке введите текст My Splash Screen. Чтобы изменить другие свойства метки (размер шрифта, цвет и т. п.), удостоверьтесь, что метка выделена, и нажмите клавишу F4 или выберите команду View → Properties Window. Затем в окне Label Controls Property измените нужные свойства метки. После этого дважды щелкните объект UserForm (но не метку) и в окне Procedure в верхнем правом углу экрана выберите Initialize (рис. 7.3).
В этой процедуре введите следующий код:
1 | Application.OnTime Now + T1meValue("00:00:05"). "KillForm" |
Код для объекта UserForm должен выглядеть так, как показано в листинге 7.7.
1 2 3 4 | //Листинг 7.7 Private Sub UserForm_Initialize() Application.OnTime Now + TimeValue("00:00:05"), "KillForm" End Sub |
Теперь выберите команду Insert > Module и введите код из листинга 7.8.
1 2 3 4 | //Листинг 7.8 Sub KillForm() Unload UserForml End Sub |
Теперь осталось добавить немного кода в частный модуль объекта Workbook (ThisWorkbook, ЭтаКнига). В окне Project Explorer вы должны видеть имя рабочей книги. Разворачивайте папки, начинающиеся ниже рабочей книги, пока не увидите ThisWorkbook (ЭтаКнига) в папке Microsoft Excel Objects. Дважды щелкните пункт ThisWorkbook (ЭтаКнига), чтобы раскрыть ее частный модуль. В частном модуле объекта ThisWorkbook (ЭтаКнига) введите код из листинга 7.9.
1 2 3 4 | //Листинг 7.9 Private Sub Workbook_0pen() Userform1. Show End Sub |
Закройте окно, чтобы вернуться в Excel. Сохраните и закройте рабочую книгу, а затем откройте ее заново, чтобы увидеть всплывающий экран в действии. На рис. 7.4 показан пример всплывающего экрана.
Помните, что всплывающий экран должен отображаться совсем недолго и содержать относящийся к данной рабочей книге текст. Если пользователи будут видеть экран дольше 10 секунд, он начнет их раздражать.