Функция CreateObjectCreateObject function

Создает и возвращает ссылку на объект ActiveX.Creates and returns a reference to an ActiveX object.

СинтаксисSyntax

CreateObject(класс, [ имя_сервера ])CreateObject(class, [ servername ])


Синтаксис функции CreateObject состоит из следующих частей:The CreateObject function syntax has these parts:

ЧастьPart ОписаниеDescription
классclass Обязательный элемент, Variant (String).Required; Variant (String). Имя приложения и класс создаваемого объекта.The application name and class of the object to create.
имя_сервераservername Необязательный элемент, Variant (String).Optional; Variant (String). Имя сетевого сервера, где будет создан объект.The name of the network server where the object will be created. Если имя_сервера является пустой строкой (""), используется локальный компьютер.If servername is an empty string (""), the local machine is used.

Для аргумента класс используется синтаксис имя_приложения.тип_объекта, содержащий указанные ниже части:The class argument uses the syntax appname.objecttype and has these parts:

ЧастьPart ОписаниеDescription
имя_приложенияappname Обязательный элемент; Variant (String).Required; Variant (String). Имя приложения, предоставляющего объект.The name of the application providing the object.
тип_объектаobjecttype Обязательный элемент, Variant (String).Required; Variant (String). Тип или класс создаваемого объекта.The type or class of object to create.

ПримечанияRemarks

Каждое приложение, поддерживающее автоматизацию, предоставляет как минимум один тип объекта.Every application that supports Automation provides at least one type of object. Например, в приложении для обработки текстов могут быть объекты Application, Document и Toolbar.For example, a word processing application may provide an Application object, a Document object, and a Toolbar object.

Чтобы создать объект ActiveX, назначьте объект, возвращаемый функцией CreateObject, переменной объекта.To create an ActiveX object, assign the object returned by CreateObject to an object variable.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding. 
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

Этот код запускает приложение, в котором создается объект, в данном случае электронная таблица Microsoft Excel.This code starts the application creating the object, in this case, a Microsoft Excel spreadsheet. После создания объекта на него можно ссылаться в коде, используя переменную объекта.After an object is created, you reference it in code by using the object variable you defined. В приведенном ниже примере доступ к свойствам и методам нового объекта осуществлялся с помощью объектной переменной ExcelSheet и других объектов Microsoft Excel, включая объект Application и коллекцию Cells.In the following example, you access properties and methods of the new object by using the object variable, ExcelSheet, and other Microsoft Excel objects, including the Application object and the Cells collection.

' 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 создается переменная, которая может содержать ссылку на любой тип объекта.Declaring an object variable with the As Object clause creates a variable that can contain a reference to any type of object. Однако обращение к объекту через эту переменную выполняется с поздним связыванием, то есть привязка создается при выполнении программы.However, access to the object through that variable is late bound; that is, the binding occurs when your program is run. Чтобы создать объектную переменную с ранним связыванием, то есть со связыванием при компиляции программы, объявите объектную переменную с определенным идентификатором класса.To create an object variable that results in early binding, that is, binding when the program is compiled, declare the object variable with a specific class ID. Например, можно объявить и создать следующие ссылки Microsoft Excel:For example, you can declare and create the following Microsoft Excel references:

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)


Ссылка с ранней привязкой может обеспечить большее быстродействие, но может содержать ссылку только на класс, указанный в объявлении.The reference through an early-bound variable can give better performance, but can only contain a reference to the class specified in the declaration.

Можно передать объект, возвращаемый функцией CreateObject, функции, которая использует объект в качестве аргумента.You can pass an object returned by the CreateObject function to a function expecting an object as an argument. Например, в следующем коде создается и передается ссылка на объект Excel.Application:For example, the following code creates and passes a reference to a Excel.Application object:

Call MySub (CreateObject("Excel.Application"))

Вы можете создать объект на удаленном компьютере, подключенном к сети, указав его имя в аргументе имя_сервера функции CreateObject.You can create an object on a remote networked computer by passing the name of the computer to the servername argument of CreateObject. Это имя совпадает с именем компьютера в имени общего ресурса; для имени "\\MyServer\Public" имя_сервера будет "MyServer".That name is the same as the Machine Name portion of a share name; for a share named "\MyServer\Public," servername is "MyServer."

Приведенный ниже код возвращает номер версии экземпляра приложения Excel, запущенного на удаленном компьютере с именем MyServer:The following code returns the version number of an instance of Excel running on a remote computer named MyServer:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Если удаленный сервер не существует или недоступен, возникает ошибка во время выполнения.If the remote server doesn't exist or is unavailable, a run-time error occurs.

Примечание

Используйте функцию CreateObject, если текущий экземпляр объекта отсутствует.Use CreateObject when there is no current instance of the object. Если экземпляр объекта уже запущен, запускается новый экземпляр и создается объект указанного типа.If an instance of the object is already running, a new instance is started, and an object of the specified type is created. Для использования текущего экземпляра или запуска приложения с одновременной загрузкой файла используйте функцию GetObject.To use the current instance, or to start the application and have it load a file, use the GetObject function.

Если объект зарегистрировал себя как объект типа "единственный экземпляр", создается только один экземпляр этого объекта независимо от того, сколько раз выполнялась функция CreateObject.If an object has registered itself as a single-instance object, only one instance of the object is created, no matter how many times CreateObject is executed.

ПримерExample

В этом примере функция CreateObject используется для создания ссылки (xlApp) на Microsoft Excel.This example uses the CreateObject function to set a reference (xlApp) to Microsoft Excel. Эта ссылка используется для доступа к свойству Visible Microsoft Excel, а затем используется метод Quit Microsoft Excel, чтобы закрыть это приложение.It uses the reference to access the Visible property of Microsoft Excel, and then uses the Microsoft Excel Quit method to close it. В конце ссылка освобождается.Finally, the reference itself is released.

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.

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.