Примечание: Функция, метод, объект или свойство, описанные в данном разделе, отключаются, если служба обработки выражений Microsoft Jet выполняется в режиме песочницы, который не позволяет рассчитывать потенциально небезопасные выражения. Для получения дополнительных сведений выполните в справке поиск по словам "режим песочницы".
Создает и возвращает ссылку на объект ActiveX.
Синтаксис
CreateObject ( класс [, имя_сервера] )
Функция CreateObject имеет следующие аргументы:
Аргумент |
Описание |
класс |
Обязательный аргумент. Variant (String). Имя приложения и класс создаваемого объекта. |
имя_сервера |
Необязательный аргумент. Variant (String). Имя сетевого сервера, где будет создан объект. Если имя_сервера является пустой строкой (""), используется локальный компьютер. |
Аргумент классаргумент использует синтаксис имя_приложения.тип_объекта и содержит следующие части:
Элемент |
Описание |
имя_приложения |
Обязательный аргумент. Variant (String). Имя приложения, предоставляющего объект. |
тип_объекта |
Обязательный аргумент. Variant (String). Тип (класс) объекта, который требуется создать. |
Замечания
В каждом приложении, поддерживающем автоматизацию, имеется хотя бы один тип объекта. Например, в приложении для обработки текстов могут быть объекты Application, Document и Toolbar.
Чтобы создать объект ActiveX, назначьте объект, возвращенный CreateObject , объектная переменная:
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
' Declare an object variable to hold the object
' reference. Dim as Object causes late binding. Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet")
В этом примере мы будем автоматизировать объект электронной таблицы Excel из базы данных Access. Этот код запускает приложение, создающее объект , в данном случае электронную таблицу Microsoft Excel. На созданный объект можно ссылаться в коде с помощью определенной вами объектной переменной. В следующем примере доступ к свойствам и методам нового объекта осуществлялся с помощью объектной переменной, ExcelSheet и других объектов Excel, включая объект Application и коллекцию Cells.
' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True ' Place some text in the first cell of the sheet. ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1" ' Save the sheet to C:\test.xls directory. ExcelSheet.SaveAs "C:\TEST.XLS" ' Close Excel with the Quit method on the Application object. ExcelSheet.Application.Quit ' Release the object variable. Set ExcelSheet = Nothing
При объявлении объектной переменной с помощью предложения As Object создается переменная, которая может содержать ссылку на любой тип объекта. Однако обращение к объекту через эту переменную выполняется с поздним связыванием, то есть привязка создается при выполнении программы. Чтобы создать объектную переменную с ранним связыванием, то есть со связыванием при компиляции программы, объявите объектную переменную с определенным идентификатором класса. Например, объявите и создайте следующие ссылки Excel:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook Dim xlSheet As Excel.WorkSheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1)
Ссылка через переменную раннего связывания может обеспечить лучшую производительность, но может содержать только ссылку на класс, указанную в объявление.
Можно передать объект, возвращаемый функцией CreateObject, функции, которая использует объект в качестве аргумента. Например, в следующем коде создается и передается ссылка на объект Excel.Application:
Call MySub (CreateObject("Excel.Application"))
Вы можете создать объект на удаленном компьютере, подключенном к сети, указав его имя в аргументе имя_сервера функции CreateObject. Это имя совпадает с именем компьютера в имени общего ресурса: для имени "\\MyServer\Public" имя_сервера будет "MyServer".
Примечание: Дополнительные сведения о том, как сделать приложение видимым на удаленном сетевом компьютере, см. в документации COM (Microsoft Developer Network). Возможно, понадобится добавить раздел реестра для приложения.
Следующий код возвращает номер версии экземпляра приложения Excel, запущенного на удаленном компьютере с именем MyServer:
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer") Debug.Print xlApp.Version
Если удаленный сервер не существует или недоступен, возникает ошибка во время выполнения.
Примечание: Используйте функцию CreateObject, если текущий экземпляр объекта отсутствует. Если экземпляр объекта уже запущен, запускается новый экземпляр и создается объект указанного типа. Чтобы использовать текущий экземпляр или запустить приложение и загрузить файл, следует воспользоваться функцией GetObject.
Если объект зарегистрировал себя как объект типа "единственный экземпляр", создается только один экземпляр этого объекта независимо от того, сколько раз выполнялась функция CreateObject.
Пример
В данном примере функция CreateObject используется для задания ссылки (
xlApp
) в Excel. Он использует ссылку для доступа к свойству Visible Excel, а затем использует метод Excel Quit , чтобы закрыть его. Наконец, освобождается сама ссылка.
Dim xlApp As Object ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application") ' You may have to set Visible property to True ' if you want to see the application. xlApp.Visible = True ' Use xlApp to access Microsoft Excel's ' other objects. xlApp.Quit ' When you finish, use the Quit method to close Set xlApp = Nothing ' the application, then release the reference.