Примеры написания процедур обработки событий для объектов на странице документа Word
Простой пример организации вычислений на странице документа – три объекта типа Поле:
11,1237 + 12,3456 = 23,4693
Двойной щелчок на поле в Режиме конструктора (в котором мы оказываемся, когда выбираем операцию Добавить поле из Элементов управления) перемещает в редактор Visual Basic, в нем создается пустая событийная процедура Private Sub TextBox1_Change(), аналогично для второго поля (событие Change – изменение объекта, точнее в данном случае изменение текста в объекте типа Поле). Напишем в этих процедурах одну строку – обращение к процедуре Calc1и создадим общую процедуру расчета Private Sub Calc1(). Текст процедур будет выглядеть следующим образом:
Private Sub TextBox1_Change()
' процедура для события Change объекта TextBox1
Calc1
End Sub
Private Sub TextBox2_Change()
' процедура для события Change объекта TextBox1 Calc1
End Sub
Private Sub Calc1()
If Me.TextBox1 = "" Or Me.TextBox2 = "" Then _ Me.TextBox3= ""
Exit Sub
' выход из процедуры, если одно из полей пустое
End If
On Error Resume Next
' отключение системного контроля ошибок
Me.TextBox3 = CSng(Me.TextBox1) + CSng(Me.TextBox2)
If Err <> 0 Then
' если ошибка преобразования из строки с число
MsgBox "Задайте число в формате, " & _
"определенном в установках Windows", _ vbCritical, "Ошибка ввода"
End If End Sub
Для третьего поля в окне Properties зададим свойство Enabled равным False, как показано на рисунке 1.7.
В результате после написания или изменения чисел в объектах TextBox1 и TextBox2 в поле TextBox3 будет отображаться математическая сумма двух чисел.
|
|
Если в процедуре Calc1 написать расчет без преобразования данных в числовое значение (CSng(TextBox1) или CSng(TextBox1.Value)), т. е. TextBox3 = TextBox1 + TextBox2, то вместо математической суммы получится сложение двух строковых значений.
|
Рис. 1.7. Окно свойств объекта
С объектом CommandButton1 связана следующая событийная процедура:
Private Sub CommandButton1_Click()
TextBox5 = Tables.Count
End Sub
Пример более сложной программы в Microsoft Word, рассчитывающей значения функции для X, изменяющегося от до и для заданного числа точек, показывающей таблицу и диаграмму.
Учебное задание:
1) Создать новый документ Microsoft Word, в нем запустить запись макроса и написать в документе, чем отличаются правила образования идентификаторов и описания переменных в языке VBA от языка VBS. Сохранить макрос для данного документа. Выполнить макрос 3 раза. Просмотреть текст макроса в окне Microsoft Visual Basic For Applications, скопировать его в свой документ.
2) Создать в том же документе Microsoft Word четыре поля для работы с данными (элементы ActiveX) следующего вида:
|
|
Для второго и третьего полей создайте для события Change обращение к процедуре Расчет_стоимости, которая будет присваивать четвертому полю значение произведения второго поля на третье, как показано выше. Для четвертого поля задайте значение свойства Locked = True, чтобы оно стало недоступным для редактирования.
Лабораторная работа № 6
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ VBA В MICROSOFT OFFICE EXCEL
I. Цель работы:освоение работы с языком VBA на листах Microsoft Excel.
Дата добавления: 2018-02-18; просмотров: 1146; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!