КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Открытие пользовательской формыЧтобы открывать пользовательскую форму с рабочего листа Excel, макрос, запускающий форму, должен быть в модуле из папки Modules. В папку Modules вставим новый модуль, переименуем его как Валя и напишем в нем макрос для открытия валютного калькулятора. Sub Валюта() ValCalc.Show MsgBox " Выход", , "Валюта" End Sub При создании текста макроса, когда мы напишем ValCalc и поставим точку, откроется список свойств, методов и объектов, подчиненных объекту ValCalc. Это значит, что пользовательская форма ValCalc включена в иерархическую структуру проекта открытой рабочей книги Excel. В списке подчиненных объектов будут все визуальные компоненты, которые мы добавим на форму ValCalc. Сейчас здесь только командные кнопки Выход и Пересчитать. Один из методов, подчиненных (доступных) пользовательской форме ValCalc, это Show, показать, нарисовать форму на экране, то есть выполнить пользовательскую форму. На рабочем листе Excel команда меню Сервис/Макрос/Макросы… или <Alt+F8> открывает окно Макрос. Выделяем макрос Валюта и нажимаем кнопку <Выполнить>. Окно ValCalc появилось на рабочем листе. Кнопка <Выход> закрывает окно ValCalc. И только после закрытия окна ValCalc на рабочем листе появилось окно функции MsgBox. Почему так получилось. Запуск макроса Валюта создает в оперативной памяти процесс, выполняющий этот макрос. Первый оператор макроса ValCalc.Show создает в оперативной памяти новый, дочерний процесс, выполняющий пользовательскую форму. Большинство визуальных компонентов ждут реакцию пользователя, поэтому дочерний процесс прервет выполнение родительского процесса. Дочерний процесс закончит свою работу, когда будет закрыта пользовательская форма. Только тогда продолжит выполняться основной процесс, в частности, второй оператор MsgBox…, и на рабочем листе появится окно функции MsgBox. Обратите внимание, что на пользовательскую форму может быть добавлен визуальный компонент, которые может запустить новый процесс, дочерний по отношению к пользовательской форме, и так далее. Так что при разработке пользовательских форм может получиться несколько вложенных дочерних процессов, и нужно учитывать порядок их выполнения. В окне Макрос снова выделим макрос Валюта и нажмем кнопку <Параметры>. Откроется окно Параметры макроса, в котором создадим комбинацию клавиш <Ctrl+ш> для быстрого запуска макроса Валюта и введем описание макроса. Букву «ш» можно ввести только на русском шрифте, так что не будет путаницы.
|