Функции доступа к объектам Automation




 

Для доступа к объектам Automation приложения-сервера используются функции: CreateObject и GetObject.

 

1. Функция CreateObject возвращает и создает ссылку на объект ActiveX.

CreateObject (Class, [Servername])

Здесь:

· class — имя объекта Automation (Word.Application);

· servername — параметр используется только при создании объекта Automation в сети и устанавливает имя сервера, где будет создан объект Automation.

 

2. Функция GetObject возвращает и создает ссылку на объект ActiveX, сохраненный в файле.

GetObject([Pathname] [, Class] )

Здесь:

Þ Pathname — полное имя файла; если параметр опушен, то необходимо указать значение параметра class;

Þ class — имя объекта Automation.

 

Функция GetObject подобна функции CreateObject. Но есть и некоторое различие между ними. Функцию GetObject можно использовать для доступа к существующим документам, хранящимся в файлах.

Функцию GetObject можно также применять. для доступа к объекту Application любого уже запушенного приложения Microsoft Office. Для этого надо вызвать функцию GetObject без первого параметра.

Такой способ доступа к объекту Application любого уже запущенного приложения MS Office применяется, когда нет необходимости в запуске еще одного экземпляра приложения, что происходит при работе функции CreateObject.

 

Позднее связываниепроисходит, когда тип переменной, которая будет представлять собой объект Automation, указывается как object. Тип object позволяет создавать объекты любой природы. В этом смысле он подобен типу variant. Такая чрезмерная общность определения переменной понижает производительность приложения.

Для достижения наилучшей производительности приложения необходимо определить конкретный тип для переменной, которая будет представлять собой объект Automation. Например, если используется MS Excel, то надо установить тип переменной Excel.Application.

 

Второй подход называется ранним связыванием и происходит на этапе компиляции. При раннем связывании, чтобы определить переменную конкретного класса, перед написанием кода необходимо сослаться на библиотеку объектов серверов Automation. Для этого в редакторе VBA выберите команду Tools|References. В появившемся диалоговом окне References в списке Available References установите флажок Micrisoft Excel 11.0 Object Library.

 

 

Листинг 2. Открытие существующего Word-документа

Sub OpenWordDocument()

Dim objWord As Word.Application

Dim objDoc As Word.Document

Dim FileName As String

FileName = "C:\Test.doc"

Set objWord = New Word.Application

Set objDoc = objWord.Documents.Open(FileName)

objWord.Visible = True

MsgBox objDoc.Path & "\" & objDoc.Name

objDoc.Close False

objWord.Quit

Set objDoc = Nothing

Set appWord = Nothing

End Sub

 

Листинг 3. Создание документа

Sub CreateWordDocument()

On Error GoTo errorHandler

Dim objWord As Word.Application

Dim objDoc As Word.Document

Dim objRgn As Word.Range

Set objWord = New Word.Application

With objWord

.Visible = True

.WindowState = wdWindowStateMaximize

End With

Set objDoc = objWord.Documents.Add

Set objRgn = objDoc.Words(1)

With objRgn

.Text = "Hello, Automation World!"

.Font.Name = "Comic Sans MS"

.Font.Size = 12

.Font.ColorIndex = wdBlue

.Bold = True

End With

errorHandler:

Set objWord = Nothing

Set objDoc = Nothing

Set objRgn = Nothing

End Sub

 

 

Объекты и методы библиотеки Microsoft Scripting Runtime Library для работы с файловой системой.

 

Работа с файловой системой опирается на библиотеку Microsoft Scripting Runtime Library (файл Scrrun.dll): для использования этой библиотеки надо установить ссылку на нее в диалоговом окне Tools – References.

VBA позволяет обрабатывать файлы, работать с дисками, файловой системой средствами объектной файловой системы (File System Object Model, FSO).

 

Основными объектами FSO являются:

Þ FilesSystemObject

Þ File

Þ Drive (позволяет собрать разнообразную информацию о диске)

Þ TextStream

Þ Folder

Þ Dictionary

 

Создание объекта FileSystemObject с неявной ссылкой на Microsoft Scripting Runtime (без подлючения библиотеки, недостатком данного подхода является то, что переменные объявляются с типом Variant и поэтому в редакторе кода не будут отображаться в списке свойства и методы соответствующих объектов).

 

Sub CreateFileSystemObject1()

Dim fs As Variant

Set fs = CreateObject("Scripting.FileSystemObject")

Dim ts As Variant

Set ts = fs.CreateTextFile("c:\testfile1.txt", True)

ts.WriteLine ("Hello, FSO!")

ts.Close

End Sub

 





©2015-2017 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.

Обратная связь

ТОП 5 активных страниц!