Объект Document может реагировать на три события, возникающие в результате действий пользователя:
· Open – добавляет в коллекцию Documents существующий документ, открывая файл;
· New – открывает новый документ;
· Close – закрывает документ.
Событийные обработчики для Open и Close можно поместить в проект, связанный с документом, и тогда они будут вызваны в момент открытия/закрытия данного документа.
Коллекции Characters, Words, Sentences, Paragraphs позволяют работать с последовательностями (коллекциями) символов, слов, предложений, абзацев. Может показаться удивительным, но классов, соответствующих таким элементам, как символ, слово или предложение, нет. Элементом коллекций Characters, Words и Statements является объект класса Range.
На практике для решения большинства программных задач достаточно знать всего лишь пять объектов (с сопутствующими коллекциями):
· объект Application;
· объект Document (с коллекцией Documents);
· объект Selection;
· объект Range;
· объект Bookmark (с коллекцией Bookmarks).
Пример 1
'Специальная процедура, которая печатает приказ в Word
Public Sub DocWrite(sPovod As String, sFio As String, bFlagPremia As Boolean, bFlagGramota As Boolean, nSummaPremii As Long, sOtvIsp As String)
Dim oWord As Word.Application
Dim oDoc As Word.Document
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents.Add()
oWord.Visible = True
oDoc.Activate
With oWord.Selection
.TypeText "Приказ"
.Style = "Заголовок 1"
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeText vbCrLf
.Style = "Обычный"
.TypeText vbCrLf
.TypeText "г.Санкт-Петербург" & Space(90) & Date
.TypeText vbCrLf
.TypeText vbCrLf
.TypeText "За проявленные успехи в " & sPovod & _
" наградить " & sFio & ":"
.TypeText vbCrLf
If bFlagPremia Then
.TypeText vbTab & "- денежной премией в сумме " & _
nSummaPremii & " рублей"
End If
If bFlagGramota Then
.TypeText vbCrLf
.TypeText vbTab & "- почетной грамотой."
|
Else
.TypeText "."
End If
.TypeText vbCrLf
.TypeText vbCrLf
.TypeText vbCrLf
.TypeText vbCrLf
.TypeText "Генеральный директор" & vbTab & vbTab & _
vbTab & "Иванов И. И."
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeParagraph
.TypeText vbCrLf
.TypeText vbCrLf
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.TypeText Text:=("Отв. исполнитель " & sOtvIsp)
.TypeParagraph
End With
End Sub
Пример 2
Private Sub C4_Click()
Dim appWD As Object
‘1 Открытие приложения Microsoft Word
Set appWD = CreateObject("Word.Application")
appWD.Visible = True
' Создание нового документа
appWD.Document s.Add
' В документ Word вставляется слово "От"
appWD.ActiveDocument.Paragraphs(l).Ranged.InsertAfter ("От ") ' ‘Установка размера шрифта
appWD.ActiveDocument.Paragraphs(1).Range().Font.Size = 10 ' ‘Добавление абзаца в документ
appWD.ActiveDocument.Paragraphs.Add
‘ Вставка в документ информации из текстового окна Т1
appWD.ActiveDocument.Paragraphs(2).RangeO.InsertAfter (Tl.Text)
‘ Подсчет количества абзацев
par_new = appWD.ActiveDocument.Paragraphs.Count
' Изменение размера шрифта для информации в окне Т1
For i = 2 То par_new
appWD.ActiveDocument.Paragraphs(i).Range().Font.Size = 16
Next
' Добавление абзаца в документ
appWD.ActiveDocument.Paragraphs.Add
‘в документ вставляется слово "Кому"
par_old = appWD.ActiveDocument.Paragraphs.Count
appWD.ActiveDocument.Paragraphs(par_old).Range().InsertAfter ("Кому")
appWD.ActiveDocument.Paragraphs(par_old).RangeO.Font.Size = 10
' Добавление абзаца в документ
appWD. ActiveDocument. Paragraphs. Add
par_old = appWD.ActiveDocument.Paragraphs.Count
‘вставка в документ информации из текстового окна ТЗ
appWD.ActiveDocument.Paragraphs(par_old).Range().InsertAfter (ТЗ.Text)
par_new = appWD.ActiveDocument.Paragraphs.Count
' Изменение размера шрифта для информации в окне ТЗ
For i = par_old To par_new
appWD.ActiveDocument.Paragraphs(i).Range().Font.Size = 18
Next
‘ Добавление абзацев в документ
appWD.ActiveDocument.Paragraphs.Add
appWD.ActiveDocument.Paragraphs.Add
par_old.= appWD.ActiveDocument.Paragraphs.Count
' Вставка поясняющего текста
|
appWD.ActiveDocument.Paragraphs(par_old).RangeO.InsertAfter _
("Название документа")
appWD.ActiveDocument.Paragraphs(par_old).RangeO.Font.Size = 10
' Добавление абзаца в документ
appWD.ActiveDocument.Paragraphs.Add
par_old = appWD.ActiveDocument.Paragraphs.Count
‘Вставка в документ информации из текстового окна Т2
appWD.ActiveDocument.Paragraphs(a).RangeO.InsertAfter (T2.Text)
par_new = appWD.ActiveDocument.Paragraphs.Count
Изменение размера шрифта для информации в окне Т2
For i = par_old To par_new
appWD.ActiveDocument.Paragraphs(i).Ranged.Font.Size = 22
Next
‘Добавление абзацев в документ
appWD.ActiveDocument.Paragraphs.Add
appWD.ActiveDocument.Paragraphs.Add
appWD.ActiveDocument.Paragraphs.Add
Par_old = appWD.ActiveDocument.Paragraphs.Count
‘Вставка поясняющего текста
appWD.ActiveDocument.Paragraphs(par_old).RangeO.InsertAfter _
("Текст документа")
appWD.ActiveDocument.Paragraphs(par_old).Range().Font.Size = 10
‘Добавление абзаца в документ
appWD.ActiveDocument.Paragraphs.Add
par_old = appWD.ActiveDocument.Paragraphs.Count
' Вставка в документ информации из текстового окна Т4
appWD.ActiveDocument.Paragraphs(а).Range().InsertAfter (T4.Text)
par_new = appWD.ActiveDocument.Paragraphs.Count
' Изменение размера шрифта для информации в окне Т4
For i = par_old To par_new
appWD.ActiveDocument.Paragraphs(i).Range().Font.Size = 14
Next
End Sub