注意: 如果 Microsoft Jet 表达式服务在沙盒模式下运行,则禁用本主题中所述的函数、方法、对象或属性,这会阻止计算潜在的不安全表达式。 有关沙盒模式的详细信息,请在“帮助”中搜索“沙盒模式”。
创建并返回对 ActiveX 对象的引用。
语法
CreateObject ( 类 [, servername] )
CreateObject 函数语法具有以下参数:
参数 |
说明 |
类 |
必需。 变量 (字符串) 。 要创建的对象的应用程序名称和类。 |
servername |
可选。 变量 (字符串) 。 要在其中创建对象的网络服务器的名称。 如果 servername 是空字符串 (“”) ,则使用本地计算机。 |
类 参数 使用语法 appname。objecttype 和 具有以下部分:
部分 |
说明 |
appname |
必需。 变量 (字符串) 。 提供 对象的应用程序的名称。 |
objecttype |
必需。 变量 (字符串) 。 要创建的对象的类型或 类 。 |
备注
每个支持自动化的应用程序都提供至少一种类型的对象。 例如,字处理应用程序可以提供 Application 对象、 Document 对象和 Toolbar 对象。
若要创建 ActiveX 对象,请将 CreateObject 返回的对象分配给 对象变量 :
注意: 下面的示例演示了如何在 Visual Basic for Applications (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")
在此示例中,我们将从 Access 数据库中自动执行 Excel 电子表格对象。 此代码启动创建对象(在本例中为 Microsoft Excel 电子表格)的应用程序。 创建对象后,可以使用定义的对象变量在代码中引用它。 在以下示例中,使用 object 变量、 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 子句声明对象变量会创建一个变量,该变量可以包含对任何类型的对象的引用。 但是,通过该变量对 对象的访问是后期绑定的;也就是说,绑定在程序运行时发生。 若要创建导致早期绑定的对象变量(即编译程序时绑定),请使用特定的类 ID 声明对象变量。 例如,可以声明并创建以下 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 的 servername 参数,可以在远程联网计算机上创建对象。 该名称与共享名称的“计算机名称”部分相同:对于名为“\\MyServer\Public”的共享, 服务器名称 为“MyServer”。
注意: 有关使应用程序在远程联网计算机上可见的其他信息,请参阅 COM 文档 (Microsoft 开发人员网络) 。 可能需要为应用程序添加注册表项。
以下代码返回在名为 MyServer的远程计算机上运行的 Excel 实例的版本号:
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer") Debug.Print xlApp.Version
如果远程服务器不存在或不可用,则会发生运行时错误。
注意: 如果没有对象的当前实例,请使用 CreateObject 。 如果对象的实例已在运行,则启动一个新实例,并创建指定类型的对象。 若要使用当前实例,或者要启动应用程序并使其加载文件,请使用 GetObject 函数。
如果对象已将自身注册为单实例对象,则只创建对象的一个实例,无论执行多少次 CreateObject 。
示例
此示例使用 CreateObject 函数设置引用 (
xlApp
) Excel。 它使用 引用访问 Excel 的 Visible 属性,然后使用 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.