Примеры написания процедур обработки событий для объектов на странице документа 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, то вместо математической суммы получится сложение двух строковых значений.

28
Другой пример – использование объекта типа Кнопка для расчета количества таблиц в текущем документе:

Рис. 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!