- •Ответы к экзамену ппп
- •1 Понятие ппп. Офисное программирование. Основные тенденции в развитии ппп.
- •2 Среда разработки vbe. Синтаксис vba. Достоинства и недостатки vba
- •Элементы проекта vba
- •Характеристика компонентов vbe
- •3 Объектная модель компонентов ms office. Библиотеки типов. Терминальные свойства и свойства-участники приложения. Разработка приложений для ms office.
- •Проект и область видимости модулей
- •4 Типы модулей программного проекта. Разделы модуля. Защита кода проекта. Область видимости модуля, переменных. Окна отладки vba
- •Свойства проекта
- •Защита проекта
- •5 Типы данных vba. Передача параметров в процедуру.
- •6 Функции для организации окон ввода и сообщений и их аргументы. Управляющие операторы vba (выбора и цикла).
- •7 Понятие макроса, его проектирование, способы запуска, правила сохранения, передача в другие проекты.
- •8 Определение объекта, коллекции объектов, класса, объектной модели. Механизмы инкапсуляции, встраивания, наследования, полиморфизма
- •9 Формы и элементы управления. Событийные процедуры.
- •11 Объекты Помощник, его надпись. Компонент Microsoft Agent.
- •12 Объекты (библиотеки) каркаса Excel. Формат ссылок r1c1
- •13 Интеграция с внешними приложениями. Объект Automation. Создание объекта. Раннее и позднее связывание объектных переменных
- •14 Объекты и методы библиотеки Microsoft Scripting Runtime Library для работы с файловой системой.
- •15 Подходы анализа возможных ошибок в ходе выполнения программы. Конструкции перехвата ошибок
- •2.1. Оператор On Error
- •2.2 Процедура обработки ошибки
- •2.3. Оператор Resume
- •Состав каркаса Microsoft Word. Объектная модель приложения.
- •Библиотека ado. Объектная модель. Вызов источников данных dsn и Jet-провайдера. Формирование sql-команды.
- •Объект Connection и установка подключения к базе данных
- •1 Способ
- •2 Способ
- •Задачи автоматизации в Access. Ограничения настольных субд. Объектная модель ms Access. Отличия макросов Access от макросов других приложений
Состав каркаса Microsoft Word. Объектная модель приложения.
Объект 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
