Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структурные особенности Visual Basic.docx
Скачиваний:
44
Добавлен:
17.11.2019
Размер:
2.86 Mб
Скачать

28. Интеграция приложений средством Automation.

В табл.29 представлены некоторые приложения и их программ­мные идентификаторы (ProgID), используемые при программирова­нии объектов Automation. В общем случае идентификатор ProgID состоит из имени приложения, типа или класса объекта, отделенных точкой.

 

Таблица 29

Приложение

Тип объекта

Идентификатор (ProdId)

Примечание

Excel

Application

Excel.Application

Объект Excel – рабочая книга

Excel

WorkBook

Excel.Sheet

Объект Excel – лист рабочей книги

Excel

WorkBook

Excel.Chart

Объект Excel – диаграмма на листе, связанная с данными другого листа

Word

Application

Word.Application

Объект Word

Word

Document

Word.Document

Объект документ Word

Access

Application

Access.Application

Объект Access

PowerPoint

Application

PowerPoint.Application

Объект PowerPoint

OutLook

Application

OutLook.Application

Объект OutLook

Internet Explorer

Application

InternetExplorer.Application

Объект InternetExplorer

Для доступа к объектам Automation (объектам COM) обычно используют функцию CreateObject. Синтаксис ее следующий:

 

CreateObject (Class, [ServerName]),

 где Class – имя объекта Automation;

ServerName используется только при создании объекта Automation в сети и указывает на имя сервера, где установлено приложение-сервер (объект COM).

29. Объектная модель ms Word. Свойства и методы объекта Application модели ms Word. Пример.

Коллекции, входящие в состав объектной модели, представляют собой списки однотипных по способу создания и размещения объектов (документов, абзацев, таблиц, предложений и т.д.), доступ к которым осущ-ся по индексу (все коллекции в объектных моделях заканчиваются буквой «s»). Элемент коллекции может содержать объекты и коллекции, а отдельный объект –коллекции. Например, документом коллекции Documents является объект Document, а каждая таблица содержит коллекции строк (Rows) и столбцов (Colunms) и объект типа «ячейка»(Cell). Доступ к любому объекту или коллекции возможен через корневой объект Application. Так, например, объект Paragraph не может быть создан отдельно от содержащего его документа. Коллекции также могут содержать и элементы различные по содержанию. Например, коллекция форм может содержать текстовое поле (TextBox), OLE-объект и т.д. Используя коллекции, свойства и методы объекта Application, можно создавать, открывать, редактировать и форматировать документы. Полностью объектная модель MS Word описана в файле справки VBAWDxx.CHM, где xx–число, определяющее версию продукта.Ниже приведены фрагменты кода, которые часто используются при работе с объектами модели MS Word.-

Пример. Создать программный код, выполняющий проверку орфографии текста в приложении MS Word, а также подсчитать количество слов в тексте.

Private Sub Command1_Click()

Dim wordCount As Long

Const wdDoNotSaveChanges As Integer =0, _

wdAlertsNoneAs Integer = 0

Const wdStatisticWordsAs Integer = 0'слов

'ОписываемпеременнуютипаObject(позднее'связывание) исоздаемобъектнабазекласса'Word.Application

Dim vWordAs Object

Set vWord= CreateObject("Word.Application")

With vWord

.Visible= False'Приложение Word невидимо

.DisplayAlerts= wdAlertsNone 'Запрещаем диалоги

.Documents.Add'Открытие нового документа

'Копируем содержимое поля в документ

.Selection.Text= Text1

'Запускаем проверку орфографии

.ActiveDocument.CheckSpelling

s = .Selection.Text'Копируем результат обратно

'Для многострочного текста

Text1 = Replace(s, Chr(13), vbCrLf)

With.ActiveDocument

wordCount= .ComputeStatistics(Statistic:=wdStatisticWords)

.CloseSaveChanges:=wdDoNotSaveChanges

End With'Закрываем Без сохранения

.Quit

End With

Set vWord= Nothing

'Разрываем связь объекта с приложением Word

MsgBox"Количество слов в тексте= " &_

CStr(wordCount)

End Sub

Private Sub Form_Load()

Text1 = "":Command1.Caption = "Word"

Text1.TabIndex = 0

Caption= "Работа с объектом-серверомMS Word"

End Sub

Функция CreateObject динамически создает новый объект на базе класса Word.Application (он загружается в память). Программа также будет работать, если вместо этой строки записать:Set vWord= New Word.Application, Но только перед запуском программы необходимо самим загрузить в память библиотеку MS Word11.0 Object Library командой Project\References. В процессе выполнения программа проверки орфографии выявит ошибки и предложит возможные варианты. После того, как Вы выберите правильный вариант исправления или сами исправите ошибку, или ее пропустите, окно MSWord закроется и результат вернется уже без ошибок с подсчетом количества слов и других атрибутов текста.