Функция CreateObject

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Примечание

Функция, метод, объект или свойство, описанные в данном разделе, отключаются, если служба обработки выражений Microsoft Jet выполняется в режиме песочницы, который не позволяет рассчитывать потенциально небезопасные выражения. Для получения дополнительных сведений выполните в справке поиск по словам "режим песочницы".

Создает и возвращает ссылку на объект ActiveX.

Синтаксис

CreateObject(class [, servername] )

Функция CreateObject имеет следующие аргументы:

Аргумент Описание
класс Обязательный аргумент. Variant (String). Имя приложения и класс создаваемого объекта.
имя_сервера Необязательный аргумент. Variant (String). Имя сетевого сервера, где будет создан объект. Если servername является пустой строкой (""), используется локальный компьютер.

    

Аргумент классаиспользует синтаксис appname.objecttype и состоит из следующих частей:

Часть Описание
имя_приложения Обязательный аргумент. 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.