Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР Офисное программирование.doc
Скачиваний:
274
Добавлен:
21.05.2015
Размер:
2.07 Mб
Скачать

5.2. Форматирование документа Работа с текстом (продолжение)

Наиболее важной особенностью работы на VBA в Word является вставка текста в документ при работе с приложениями. Для этого служат объекты Range и Selection, которые являются главными для практически любых операций, которые можно выполнять с помощью Word VBA. Некоторые из этих действий можно применять к документам в целом, но в общем случае вам необходим диапазон или выделенная область, прежде чем вносить изменения. Мы, однако, рассмотрим действия с документом при его создании.

Открытый документ Word уже содержит объекты Range, соответствующие многим его элементам. Каждый абзац, таблица, ячейка таблицы, комментарий и т. д. определяют диапазоны. Например, для того чтобы вставить некоторый текст в уже существующий документ, необходимо прописать код:

ActiveDocument.Paragraphs(1).Range.Text = «Oxo-xo!!»

Причем данная строка будет расположена в конце существующего параграфа. С другой стороны, используя объект Selection, можно также вставить некоторый текст в документ, используя метод Add и присвоение свойства Text объекту Selection:

If Documents.Count = 0 TheNDocuments.Add

Selection.Text = "Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, « + TextBox1.Text +», и отвечает запросам всех программистов!»

В результате выполнения данного программного кода в документе Word будет выведена строка:

Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, Светлана, и отвечает запросам всех программистов!

Здесь имя Светлана, например, считано с текстового поля некоторой формы, имеющей всего одно поле ввода для имени и кнопку «Вывод текста» (рис. 64).

Рис. 64. Форма ввода данных

При работе с текстом на рабочем листе Word необходимо знать следующие коды:

определение цвета

Selection.Font.Color =

wdColorRed – красный

wdColorDarkRed – бордовый

wdColorDarkTeal – бирюзовый

wdColorBlue – синий

wdColorGreeN– зеленый

wdColorBlack – черный

wdColorOrange – оранжевый

определение жирности

Selection.Font.Bold =

wdToggle – жирность

определение начертания

Selection.Font.Italic=

wdToggle – курсив

определение выравнивания

Selection.ParagraphFormat.Alignment=

wdAlignParagraphRight – выравнивание по правому краю

wdAlignParagraphCenter – выравнивание по центру

wdAlignParagraphJustify – выравнивание по левому краю

вставка в текст конкретного предложения

Selection.TypeText Text:="Пример работы с текстом"

вставка новой пустой строки

Selection.TypeParagraph

установка размера букв

Selection.Font.Size = 14

Примечание. Для правильного оформления кода пользуйтесь возможностями создания макроса написания программы.

Одним из элементов оформления диалоговых окон является элемент управления Image (рисунок). Его основные свойства:

Autosize – изменяет размер рисунка на форме (автоматически или нет);

Picture – отображает графический файл, выводимый на форму;

pictureSizeMode – устанавливает масштабирование рисунка (не весь рисунок, вся поверхность объекта, целиком внутри объекта);

PictureAligment – устанавливает расположение рисунка внутри объекта (слева, справа, вверху, внизу);

pictureTilling – покрывает объект мозаикой из рисунка.

Данные свойства либо устанавливаются в окне свойств объекта, либо прописываются в листинге.

Пример 30. Создать программу, которая будет производить подсчет количества теплоты, выделяемой в проводнике при протекании в нем тока. Формула для расчета количества теплоты известна под именем закона Джоуля – Ленца:

где Q – количество теплоты в Джоулях;

U – напряжение в вольтах;

t – время в секундах;

S – площадь поперечного сечения проводника в квадратных миллиметрах;

l – длина проводника в метрах;

р – удельное сопротивление материала проводника в Ом × мм2/м.

Все исходные данные вводятся в текстовые поля формы. По итогам вычисления результат в виде объяснительной записки выводится в документ, а численный результат – в специальное окно формы.

Технология выполнения

Создайте форму по приведенному рис. 65.

Рис. 65. Разработанная форма примера 30 в рабочем состоянии и вывод результирующих сведений в документ word

При создании формы установите необходимые свойства элементов. Установите свойство Locked элемента TextBox6 как True, чтобы не допустить случайного ввода пользователем в него текста.

Описание процедур

Private Sub CommandButton1_Click()

If Documents.Count = 0 TheNDocuments.Add

Selection.Text = "При прохождении тока напряжением в " + TextBox1.Text + "вольт по проводнику длиной " + TextBox4.Text + " метров, сечением " + TextBox3.Text + "кв. мм и удельным сопротивлением " + TextBox5.Text + " Ом*мм2/м за " + TextBox2.Text + " секунд выделится " + TextBox6.Text + « джоулей теплоты»

Selection.Collapse direction:=wdCollapseEnd

End Sub

Private Sub CommandButton2_Click()

Unload Me

End Sub

Private Sub TextBox1_Change()

scet

End Sub

Private Sub TextBox2_Change()

scet

End Sub

Private Sub TextBox3_Change()

scet

End Sub

Private Sub TextBox4_Change()

scet

End Sub

Private Sub TextBox5_Change()

scet

End Sub

Private Sub scet()

If IsNumeric(TextBox1.Text) = True And

IsNumeric(TextBox2.Text) = True And

IsNumeric(TextBox3.Text) = True And

IsNumeric(TextBox4.Text) = True And

IsNumeric(TextBox5.Text) = True AndNot Val(TextBox4.Text)

= 0 AndNot Val(TextBox5.Text) = 0 Then

rez = ((Val(TextBox1.Text) ^ 2) * Val(TextBox2.Text) *

Val(TextBox3.Text)) / (Val(TextBox4.Text) *

Val(TextBox5.Text))

TextBox6.Text = Str$(rez)

CommandButton1.Enabled = True

Else

TextBox6.Text = ""

CommandButton1.Enabled = False

End If

End Sub

Примечание. При работе данного приложения все значения полей ввода должны быть числовыми. В VBA есть специальная функция для проверки того, является или нет введенная строка записью числа – IsNumeric. Для проверки отличия от нуля значений в последних двух полях ввода используется функция Val, которая переводит строковое выражение в числовое, если это строковое выражение содержит в своем начале цифры (или все состоит из них).

Функция Str делает преобразование, обратное тому, что производит Val, – конвертирует числовое значение выражения в строковое, что позволяет этому значению в дальнейшем обрабатываться как строке.

Таким образом, функции Val и Str преобразуют типы данных обрабатываемых ими переменных, соответственно, из строкового в числовой и из числового в строковый (см. главу 3).