Visual Basic 6. Руководство разработчика


Установка связи с сервером - часть 3


Вызов этой функции приведет к запуску Excel (если до этого не был запущен ни один экземпляр). А чтобы установить связь с уже запущенным экземпляром Excel, следует следующим оператором вызвать функцию Get0bject():

Set EXLApp = Get0bject(, "Excel.Application")

Во многих ситуациях нет разницы, будет ли запущен новый экземпляр прило­жения-сервера, или будет установлена связь с уже запущенным экземпляром. Например, чтобы вызывать метод Evaluate нет необходимости запускать новый экземпляр Excel. Если он уже запущен, следует связаться с ним и выполнить с его помощью вычисление математического выражения. После того как это действие будет выполнено, работающий экземпляр Excel вернется в то же состояние, что и прежде. Поэтому, предпочтительнее (с точки зрения эффективности) пытаться устанавливать связь с существующим экземпляром приложения-сервера. И только в том случае, если нет ни одного запущенного экземпляра сервера, следует его запустить В следующем фрагменте программы применяется именно этот способ. Сначала делается попытка установления связи с уже запущенным экземпляром Word. Если Word не работает, то генерируется сообщение об ошибке. Оператор On Error Resume Next предписывает Visual Basic подавлять сообщение об ошибках и продолжать выполнение программы с оператора, следующего за вызвавшим ошибку. Если происходит ошибка, значит, при вызове функции Get0bject() произошел сбой и следует вызвать функцию CreateObject(), чтобы запустить новый экземпляр Word.

Программа 14.8.

Установление связи или запуск Word

On Error Resume Next

Set AppWord = Get0bject ("Word.Application")

If AppWord Is Nothing Then

Set AppWord - CreateObject ("Word.Application")

If AppWord Is Nothing Then

MsgBox "Could not start Word.Application will quit"

'(Word не был запущен. Программа прекращает работу)"

End

  End If

End If

Объявление объектных переменных

Объектная переменная, которая описывает приложение-сервер

OLE, может быть объявлена либо как переменная типа Object (Объект), либо как переменная специального типа (например, Excel.Application или Word.Application). Если пере­менная EXLApp




Начало  Назад  Вперед