CreateObject 函数

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。

注意: 如果 Microsoft Jet Expression 服务在沙盒模式下运行, 这将禁用本主题中介绍的函数、方法、对象或属性, 从而防止计算潜在不安全的表达式。 有关沙盒模式的详细信息, 请在帮助中搜索 "沙盒模式"。

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

语法

CreateObject ( [, servername] )

CreateObject函数语法具有以下参数:

参数

描述

必需。 变体(字符串)。 要创建的对象的应用程序名称和类。

servername

可选。 变体(字符串)。 将在其中创建对象的网络服务器的名称。 如果servername为空字符串 (""), 则使用本地计算机。


参数 使用语法appnameobjecttype , 包含以下部分:

部分

说明

appname

必需。 变体(字符串)。 提供对象的应用程序的名称。

objecttype

必需。 变体(字符串)。 要创建的对象的类型或类 。


备注

每个支持自动化的应用程序都提供至少一种类型的对象。 例如, 字处理应用程序可以提供应用程序对象、文档对象和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 电子表格。 创建对象后, 使用您定义的对象变量在代码中引用它。 在以下示例中, 使用对象变量、 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 对象的引用:

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

你可以通过将计算机的名称传递到CreateObjectservername参数, 在远程网络计算机上创建对象。 该名称与共享名称的计算机名部分相同: 对于名为 "\\MyServer\Public" 的共享, " servername " 是 "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.
扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×