Одноразовые и многофункциональные приложения
Этот контент больше не поддерживается. Он предоставляется как есть, для тех, кто все еще может использовать эти технологии, без каких-либо гарантий или заявлений о точности в отношении последней версии продукта или выпуска услуги.
Возврат ссылки на новый экземпляр объекта приложения или существующего экземпляра зависит от того, является ли поведение приложения по умолчанию как одноразовое или многофункциональное. Одноразовое приложение создает новый экземпляр этого приложения при каждом создании объекта переменной в любом хост-приложении. Например, Microsoft ® Word-это одноразовое приложение, поэтому следующий код создает новый экземпляр Microsoft® Word независимо от того, сколько экземпляров Word уже запущено
Dim wdApp aAs Word.Application
Set wdApp = New Word.Application
Многофункциональное приложение позволяет хост-приложениям совместно использовать один и тот же экземпляр приложения. В следующем примере создается новый экземпляр Microsoft ® Outlook® только в том случае, если Outlook не выполняется при выполнении кода. Поскольку Outlook является многофункциональным приложением, если Outlook уже выполняется при выполнении этого кода, объектная переменная указывает на текущий экземпляр.
Dim olApp As Outlook.Application
Set olApp = New Outlook.Application
В следующей таблице показано поведение по умолчанию для каждого приложения Office.
Приложение |
Тип приложений |
Access |
Одноразовое использование (Single-use) |
Excel |
Одноразовое использование (Single-use) |
FrontPage |
Одноразовое использование (Single-use) |
Outlook |
Универсальный (Multi-use) |
PowerPoint |
Универсальный (Multi-use) |
Word |
Одноразовое использование (Single-use) |
Можно использовать функцию GetObject для создания объектной переменной, которая ссылается на текущий экземпляр одноразового приложения.
Если вы создаете переменную объекта, указывающую на многоцелевое приложение (Outlook или Microsoft ® PowerPoint®), и экземпляр приложения уже запущен, любой метод, используемый для создания переменной объекта, возвращает ссылку на выполняемый экземпляр. Например, если Outlook уже запущен, следующие строки кода возвращают ссылку на один и тот же экземпляр Outlook
Dim olApp1 As Outlook.Application
Dim olApp2 As Outlook.Application
Dim olApp3 As Outlook.Application
Set olApp1 = New Outlook.Application
Set olApp2 = CreateObject("Outlook.Application")
Set olApp3 = GetObject(, "Outlook.Application")