
- •1) Основные элементы объектно-ориентированных языков программирования (на примере vba)
- •2)Объекты, свойства и события (на примере vba)
- •3)Объекты, методы и события (на примере vba)
- •5)Объекты, свойства и методы (на примере vba)
- •19) События объекта UserForm
- •События объектов UserForm
- •Объект document
- •Свойства объекта Workbook и семейства Workbooks
- •Методы объекта Workbook и семейства Workbooks
- •События объекта Workbook и семейства Workbooks
19) События объекта UserForm
Событие - это что-то, что может произойти с диалоговым окном или элементом управления диалогового окна (таблица. События объектов UserForm).
Событийные процедуры следует записывать в модуль класса, который является частью User Form. При этом такие процедуры должны иметь имена в виде
ObjectName_EventName,
где ObjectName - имя формы или элемента управления, a EventName - имя события, с которым идет работа. Такой формат имени позволяет VBA сопоставлять заданному событию требуемую процедуру.
События объектов UserForm
Событие |
Синтаксис заголовка процедуры |
Описание |
Activate |
Private Sub object_Activate() |
Инициируется всякий раз, когда окно формы становится активным. Используйте это событие для обновления содержимого диалоговых элементов управления, чтобы отразить любые изменения, которые произошли, пока окно было неактивным |
Click |
Private Sub object_Click() |
Инициируется всякий раз, когда по форме (любой ее части, не занятой элементами управления) щелкают мышью |
DblClick |
Private Sub object_DblClick() |
Инициируется всякий раз, когда по форме (любой ее части, не занятой элементами управления) дважды щелкают мышью |
Deactivate |
Private Sub object_Deactivate() |
Инициируется всякий раз, когда форма перестает быть активной |
Initialize |
Private Sub object_Initialize() |
Инициируется всякий раз, когда форма впервые загружается в память посредством выполнения оператора Load или с помощью метода Show. Используйте это событие для инициализации элементов управления формы при ее появлении на экране |
Resize |
Private Sub object_Resize() |
Инициируется при изменении размеров формы |
Terminate |
Private Sub object_ Terminate() |
Инициируется всякий раз, когда форма выгружается из памяти. Используйте это событие для осуществления любых специальных служебных задач, которые необходимо выполнить прежде, чем переменные формы будут выгружены |
Билет №20 Методы объектов UserForm.
Метод |
Назначение |
Copy |
Копирует выделенный в элементе управления текст в буфер обмена Windows |
Cut |
Вырезает выделенный в элементе управления текст и помещает его в буфер обмена Windows |
Hide |
Скрывает UserForm, не выгружая ее из памяти, сохраняя значения элементов управления формы и всех переменных, объявленных в модуле класса формы |
Paste |
Вставляет содержимое буфера обмена Windows в текущий элемент управления |
PrintForm |
Выводит на используемый в Windows по умолчанию принтер изображение формы, включая все данные, введенные в элементы управления |
Repaint |
Перерисовывает форму, выведенную на экран. Используется этот метод, если необходимо перерисовать форму, не ожидая, когда она будет перерисована через обычный период времени |
Show |
Выводит форму на экран. Если форма еще не загружена в память, то данный метод сначала ее загружает. Синтаксис метода Show:FormName.Show |
Билет №21 Операции со строками.
Строки можно складывать между собой посредством оператора "+". Если результирующая строка превысит максимально допустимую для неё длину, то лишние символы будут просто отброшены. Также для складывания строк можно использовать процедуру "concat", в которую может быть передано сразу несколько строк: concat(str1, str2, str3).
Для полного копирования (дублирования) строки используется оператор присваивания ":=". Если необходимо скопировать только часть строки, то используется процедура "copy", в которую передаются три параметра: строка, стартовая позиция и длина копируемого отрезка. Пример использования функции copy:
str:='В данной строке три слова' str2:=copy(str,10,6);
В результате во вторую переменную запишется слово "строке". Для удаления подстроки используется аналогичная процедура "delete", вызов которой осуществляется следующим образом: delete(str, 2,5) - результатом работы будет удаление 5 символов из строки str начиная со второй позиции.
Для вставки подстроки используется процедура "insert", в которую передаются три параметра: вставляемый сегмент, строка, в которую будет производиться вставка и позиция вставляемой строки. В качестве вставляемого сегмента может передаваться как переменная, так и сразу набор символов (строка). Пример использования данной процедуры:
insert("вставка", str, 5);
В результате в строку str начиная с 5 позиции будет вставлена подстрока "вставка".
Очень часто возникает необходимость в проверке на вхождение (поиске одной строки в другой). Для этой цели используется функция "pos", которая возвращает значение типа "integer" (номер позиции первого вхождения). В случае неудачного поиска возвращаемое значение равно 0. Синтаксис данной функции выглядит следующим образом: pos(substr, str) - в строке str осуществляется поиск строки substr.
Билет №22 Объект Word.Application
Объект Application — это само приложение Microsoft Word. Все остальные объекты Word "вложены" в этот объект. Создать этот объект — значит запустить Word на вашем компьютере. Как правило, это нам и надо (если мы создаем в формате Word из другого приложения, например, из Access). Но не забудьте — если вы запускаете Word из другого приложения Office, то необходимо добавить в ваш проект ссылку на библиотеку Microsoft Word 11.0 Object Library.
Код на запуск Word очень прост:
Dim oWord As New Word.Application
Однако, выполнив этот код из другого приложения, вы, скорее всего, даже не заметите, что у вас что-то произошло. Причины просты:
по умолчанию Word запускается в скрытом окне;
если в нем не открыт ни один документ, он тут же и закрывается (после того, как завершается создавшая его процедура).
Сделать Word видимым очень просто:
oWord.Visible = True
Однако возникает вопрос: а нужно ли его делать видимым? Некоторые знакомые разработчики утверждают, что не нужно. Пусть Word работает в скрытом окне, создавая требуемый документ. Когда пользователю потребуется, он этот документ откроет. Решать вам, но я предпочитаю, чтобы Word все-таки был видимым: во-первых, сразу видны все проблемы при создании документа, а, во-вторых, пользователям почему-то очень нравится, когда у них на глазах открывается Word и начинает печатать строки, которые в противном случае пришлось бы печатать им самим.
Билет №23 Объект Document