CreateObject 函数

创建并返回对 ActiveX 对象的引用。

语法

CreateObject(class, [ servername ])

CreateObject 函数语法包含以下部分:

Part 说明
class 必需;Variant (String)。 要创建对象的应用程序名称和类。
servername 可选;Variant (String)。 将在其中创建对象的网络服务器的名称。 如果 servername 为空字符串 (""),则使用本地计算机。

参数使用语法 appnameobjecttype 和 具有以下部分:

Part 说明
appname 必需;Variant (String)。 提供对象的应用程序的名称。
objecttype 必需;Variant (String)。 要创建对象的类型或

注解

每个支持 Automation 的应用程序都提供至少一种类型的对象。 例如,字处理应用程序可能提供 Application 对象、Document 对象和 Toolbar 对象。

要创建 ActiveX 对象,请将 CreateObject 返回的对象指定给对象变量

' 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 电子表格。 创建对象后,就可以使用定义的对象变量在代码中对其进行引用。 在下面的示例中,访问使用对象变量的新对象的属性方法ExcelSheet 以及其他 Microsoft 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 子句声明对象变量将创建可包含对任意类型对象的引用的变量。 但是,通过该变量访问该对象属于晚期绑定(即,在程序运行时绑定)。 要创建导致早期绑定(即,在编译程序时绑定)的对象变量,请使用特定的类 ID 声明对象变量。 例如,可以声明并创建以下 Microsoft 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"))

可以通过将计算机的名称传递给 CreateObjectservername 参数在远程网络计算机上创建对象。 该名称与共享名称的“计算机名称”部分相同;对于名为“\MyServer\Public”的共享, servername 为“MyServer”。

以下代码返回在名为 MyServer 的远程计算机上运行的 Excel 实例的版本号:

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

如果远程服务器不存在或不可用,将出现运行时错误。

注意

如果没有对象的当前实例,请使用 CreateObject。 如果对象实例已在运行,则启动新的实例并创建指定类型的对象。 要使用当前实例,或启动应用程序并加载文件,请使用 GetObject 函数。

如果对象本身注册为单实例对象,无论执行多少次 CreateObject 都只创建一个对象实例。

示例

本示例使用 CreateObject 函数来设置对 Microsoft Excel 的引用 (xlApp)。 其通过引用访问 Microsoft Excel 的 Visible 属性,再使用 Microsoft 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.
    ' Closes the application using the Quit method
xlApp.Quit    

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。