Событийная процедура
представляет собой подпрограмму, которая начинает выполняться после реализации определенного события.
Имя процедуры включает в себя имя объекта и имя события:
Объект_Событие ()
Каждая процедура представляет отдельный программный модуль, который реализует определенный алгоритм. В терминологии процедурного программирования такие процедуры соответствуют подпрограммам, поэтому каждая из событийных процедур начинается с ключевого слова Sub (subroutine — подпрограмма) и заканчивается ключевыми словами End Sub
Ответьте на вопросы:
- В чем заключается создание графического интерфейса проекта?
- Что такое событие? Событийная процедура?
- Какими способами можно изменить свойства объекта?
- Что такое метод объекта? Как использовать в программе метод объекта?
Событийные процедуры
Каждый элемент управления и сама форма обладают некоторыми событиями, при этом одно из событий является событием по умолчанию. Например, событием по умолчанию для командной кнопки является нажатие на нее левой кнопкой мыши (Click).
- Двойной щелчок на элемент управления или свободное пространство формы высвечивает процедуру события по умолчанию соответствующего объекта.
Для записи любой событийной процедуры следует
- перейти на процедурный лист формы,
- в окне объектов (вверху слева) выбрать объект формы,
- в окне событий (вверху справа) выбрать событие объекта.
Автоматически появятся команды начала и конца событийной процедуры, ассоциированной с выбранным событием объекта. Процедура имеет стандартное имя, состоящее из имени объекта и названия события, которые разделены нижним подчеркиваием (_).
- Имя событийной процедуры не должно изменяться разработчиком, за исключением случаев, когда команды, записанные в этой процедуре, не должны быть предназначены для чего-нибудь другого, кроме выполнения при возникновении события.
- Вставьте новую форму. В папке Forms появится строка UserForm1.
Рис. 7.3. Форма-приветствие с двумя элементами управления
- Разместите на ней два элемента управления TextBox и CommandButton. Они получат стандартные имена TextBox1 и CommandButton1.
- Двойной щелчок на элемент CommandButton1 переводит на процедурный лист формы. При этом точка вставки будет установлена в процедуре CommandButton1_Click().
Рис. 7.4. Событийные процедуры нажатия на кнопку и инициализации формы
- Введите тексты событийных процедур, показанных на рис. 7.4. Для вставки событийной процедуры инициализации формы UserForm_Initialize выберите объект UserForm в окне объектов и событие Initialize в списке событий.
Режим выполнения
Для запуска формы используется команда Run Sub/UserForm меню Run (можно нажать кнопку Run или клавишу F5). В режиме выполнения форма высвечивается на фоне активного листа активной рабочей книги.
Рис. 7.5. Форма-приветствие в режиме выполнения
Форма высветит приветствие после ввода пользователем своего имени в поле ввода и нажатия на командную кнопку CommandButton1.
В режиме выполнения одновременно могут быть высвечены несколько форм, но только одна форма активна в единицу времени. Ее окно расположено поверх остальных окон и титульная строка высвечена ярко. Неактивные формы могут быть невидны, например, спрятаны оператором Hide.
В режиме выполнения формы пользователь выполняет некоторые действия, каждому из которых соответствует событие, которое обрабатывается системой: устанавливается объект, с которым производилось действие; определяется тип происшедшего события, и в качестве реакции выполняется некоторая процедура – событийная процедура объекта.
Действия пользователя могут инициировать запуск других форм. Последняя загруженная форма является активной.
- При загрузке формы резервируется некоторый объем оперативной памяти и в какой-то момент может произойти нехватка памяти, поэтому следует выгружать из памяти уже ненужные формы командой Unload, размещенной в событийной процедуре формы.
- Форма находится в режиме выполнения до выгрузки ее из памяти командой Unload или нажатием на кнопку закрытия окна формы.
- По окончании любой событийной процедуры происходит высвечивание формы, если в конце процедуры не стоит команда выгрузки формы Unload или команда скрытия формы Hide.
- Переменные, определенные на уровне модуля процедурного листа выполняемой формы, или определенные на модульном уровне в стандартных модулях (глобальные переменные), сохраняют свои значения на все время выполнения формы.
- Локальные переменные, определенные в событийных процедурах не как Static, теряют свои значения по окончании выполнения событийной процедуры и высвечивания формы.
Для выхода из режима выполнения формы можно нажать на кнопку закрытия окна или, если это запрограммировано, выполнить некоторое действие (обычно это нажатие на командную кнопку) – соответствующая событийная процедура закрывает форму.
После завершения работы всех загруженных форм последняя активная форма автоматически открывается в режиме конструктора.
Графический интерфейс и событийные процедуры
1. Графический интерфейс и событийные процедуры.
Свойства
формы
Форма
2. Некоторые классы объектов, их свойства. Методы и события.
Класс
объектов
Свойства
Методы
События
Form
форма
Name (имя)
Caption
(надпись)
Font (шрифт)
Show
(показать)
Move
(переместить)
Load
(загрузка)
CommandButton Name (имя)
Командная
Caption
кнопка
(надпись)
Font (шрифт)
Move
(переместить)
Click
(щелчок)
TextBox
Текстовое поле
Move
(переместить)
DblClick
(двойной
щелчок)
Name (имя)
Text (текст)
Font (шрифт)
3. Имя объекта
Начинается с префикса, который
определяет тип объекта.
Для форм – frm
Для кнопок – cmd
Для надписей – lbl
Для текстовых полей — txt
Например, форма – frmFirst или
frm1
4. Событийная процедура
Программа, которая начинает
выполняться после реализации
определённого события.
Sub объект(1)_событие()
Объект(2).Свойство=значениеСвойства
Объект (3).Метод арг1:=знач,арг2:=знач
…
End Sub
Событийные и общие процедуры
Программирование – это теоретическая и практическая деятельность, связанная с созданием программ.
В качестве инструмента для создания приложений в данной работе выбран VBA –Visual Basic for Applications (Visual Basic для приложений). Этот выбор объясняется следующими причинами:
ВВЕДЕНИЕ
ПОНЯТИЕ ПРОЦЕДУРЫ…………………………………………………4
СОБЫТИЙНЫЕ И ОБЩИЕ ПРОЦЕДУРЫ……………………………. 6
ЗАКЛЮЧЕНИЕ
Библиографический список………………………………………………..9
Вложенные файлы: 1 файл
ВВЕДЕНИЕ.docx
- ПОНЯТИЕ ПРОЦЕДУРЫ…………………………………………………4
- СОБЫТИЙНЫЕ И ОБЩИЕ ПРОЦЕДУРЫ……………………………. 6
Программирование – это теоретическая и практическая деятельность, связанная с созданием программ.
В качестве инструмента для создания приложений в данной работе выбран VBA –Visual Basic for Applications (Visual Basic для приложений). Этот выбор объясняется следующими причинами:
- VBA – это интегрированная среда визуального программирования, позволяющая создавать современные событийно-объектно- ориентированные приложения с унифицированным графическим интерфейсом;
- языковые средства VBA по гибкости и полноте не уступают языковым средствам других современных систем программирования и, следовательно, позволяют освоить типовые методы и приемы разработки программных процедур;
- VBA является общей языковой платформой для всех приложений MS Office и позволяет в создаваемых программах работать с объектами Word, Excel, Access, Power Point, OutLook, Binder; мы будем рассматривать VBA во взаимосвязи с Excel, размещая на листах Excel исходные данные и результаты решения задач.
VBA – это сочетание современного языка программирования и вычислительных возможностей Excel. VBA содержит графическую среду, позволяющую создавать удобный интерфейс пользователя, наглядно конструируя экранные формы и управляющие элементы .
Процедуры — это логически построенные, небольшие программные блоки, на которые делится вся программа.
Процедуры представляют собой часть программного кода, снабженную именем. Записав код процедуры один раз (это называется объявлением процедуры) можно заставлять его работать (это называется вызовом процедуры или обращением или обращением к процедуре) сколько угодно раз.
Процедуры, переменные, модули, константы и другие объекты имеют имена. Имена должны быть понятными и отражать назначение объекта. При именовании следует придерживаться следующих правил:
— Длина имени не должна превышать 256 символов.
— В имени можно использовать любую комбинацию букв, цифр и символов, но оно должно начинаться с буквы.
— Имена не должны включать точек, пробелов и следующих символов: % & ! # @ $.
— Имена должны быть уникальны внутри области определения.
Область определения зависит от того, где определена процедура, функция или переменная. В одном модуле не может быть процедур и функций с одинаковыми именами, а внутри процедуры или функции имена переменных и массивов не должны дублироваться.
VBA позволяет создавать три типа процедур Sub, Function и Property. При запуске процедуры Sub выполняются команды процедуры, а затем управление передается в приложение или процедуру, которая вызвала процедуру Sub. Function (функция) также решает определенную задачу. Различие заключается в том, что функция возвращает единственное значение, поэтому обычно используется для выполнения вычислений. Property используется для ссылки на свойство объекта. Применяется для установки или получения значения пользовательских свойств форм и модулей. Процедуры Sub подразделяются на процедуры, связанные с элементами управления (событийные) и процедуры общего назначения. Процедуры Sub -не возвращают значение в вызывающую процедуру.
При разработке сложного алгоритма вся процедура может разбиваться на отдельные алгоритмы, которые называются вспомогательными. Каждый такой вспомогательный алгоритм описывает решение какой-либо подзадачи. Как основной алгоритм, так и вспомогательные алгоритмы могут включать основные алгоритмические структуры: линейную, разветвляющуюся и циклическую.
- СОБЫТИЙНЫЕ И ОБЩИЕ ПРОЦЕДУРЫ
Событийная процедура – это подпрограмма, которая начинает выполняться после достижения какого то события (например, при щелчке по кнопке появляется картина).
Событийная процедура всегда связана с каким-то объектом. В событийной процедуре может участвовать несколько объектов, например, само событие может происходить с первым объектом, в результате второй объект изменяет значение своего свойства, а третий объект реализует какой-либо метод.
Чтобы вызвать событийную процедуру объекта, необходимо по нему сделать двойной левый щелчок.
Событийные процедуры бывают и локальные, и глобальные. Каждая событийная процедура имеет свой вид.
В отличие от событийных процедур, запуск общих процедур не связывается с какими-либо событиями, а реализуется путем вызова из других процедур.
Общая процедура – представляет собой подпрограмму, которая начинает выполняться после её вызова из другой процедуры. Если в программе во всех формах встречается один и тот же программный блок, то его можно записать только один раз и в одном месте, в виде глобальной общей программы.
Запуск общей программы не связана с объектом и с событием, а происходит, когда к нему обращаются из других программных блоков.
В объектно-ориентированных языках программирования с помощью общих процедур реализуются вспомогательные алгоритмы (выполняющих решение неких подзадач). Для каждой такой общей процедуре задается уникальное имя, а также устанавливается список входных и выходных параметров. Список входных параметров – это набор переменных, значение которых должно быть обязательно установлено до начала выполнения процедуры. Список выходных параметров представляет собой набор переменных, значения которых должны быть установлены по окончании выполнения процедуры.
Общая процедура также может быть локальной и глобальной.
Локальная процедура доступна только внутри данного программного модуля и не может быть вызвана из другого модуля. Глобальные процедуры доступны из всех программных модулей объекта, это означает, что глобальные процедуры могут вызываться из любого программного модуля данного объекта.
Для того чтобы процедура была доступна во всех модулях и формах
проекта, она должна быть объявлена в модуле. Процедура, объявленная в форме, доступна процедурам только этой формы.
В список аргументов подпрограммы рекомендуется включать все входные и все выходные для этой подпрограммы данные.
В список аргументов функции рекомендуется включать все входные для этой функции данные. Ее результат (если он единственный) возвращается в вызывающую программу через имя функции.
Процедура задает правило обработки объектов. Значения аргументов при обращении к процедуре указывают, к каким объектам (или их копиям)
действующим в вызывающей программе будет применено это правило. При
выполнением тела процедуры во всех е ѐ инструкциях аргументы заменяются соответствующими значениями аргументов, заданными при обращении в списке значений аргументов.
- А. Экслер. Microsoft Office 2003: Word, Excel, Outlook. Изд-во: НТ Пресс, 2005. — 176 с.
- Малышев С.А. Самоучитель VBA: Как это делается в Word, Excel, Access. — СПб.: Наука и техника, 2001. — 490 с.
- Карпов Б. VBA: Специальный справочник. — СПб.; М.; Харьков; Минск: Питер, 2002. — 410 с.
- Васильев А. VBA в Office 2000: Учеб. курс/А. Васильев, А. Андреев. — СПб.: Питер, 2001. — 432 с.