excel 的 COM 加载项和自动化加载项

文章翻译 文章翻译
文章编号: 291392 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

Microsoft Office Excel 2002 和 Microsoft Office 2007 支持自动化加载项以组件对象模型 (COM) 加载项的补充。本文介绍了这两种类型的外接程序的差异。

更多信息

COM 外接程序

COM 加载项向开发人员提供一种扩展的 Office 2000,Office XP,Office 2003 和 Office 2007 的自定义任务的应用程序功能的方法。COM 加载项通常用于使 Excel 自动化响应一个单击 CommandBar 按钮、 窗体或对话框或其他一些特定于 Excel 如打开或关闭工作簿或工作表上输入数据的事件。COM 加载项函数不能直接从工作表中的单元格公式中调用。

COM 加载项是一个进程内 COM (ActiveX DLL) 的服务器必须实现 IDTExensibility2 接口。所有 COM 加载项必须都实现此接口的五种方法的每个: OnConnectionOnStartupCompleteOnAddinsUpdateOnBeginShutDownOnDisconnection

在用户系统上安装 COM 加载项后,为外接程序创建注册表项。除了普通的 COM 注册,COM 加载项注册为它运行每个 Office 应用程序。在下面的注册表项中注册 COM 加载项使用由 Excel:
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\ 
					
此项包含每个已安装 COM 加载项的子项。该子项的名称是在 COM 加载项的 ProgID。一个 COM 加载项的子项还包含描述该 COM 加载项的友好名称,说明,并加载行为的值。加载行为描述外接程序加载方式在 Excel 中: 按需,加载或未加载,在启动加载仅,下次启动时加载。

COM 加载项还可以加载和卸载通过 Excel 2002 的用户界面。若要这样做,请按照下列步骤操作:
  1. 视图 菜单上指向 工具栏,然后单击 自定义
  2. 工具栏 对话框中单击 高级 选项卡。在类别列表中选择 工具。查找命令的列表中的 COM 加载项,并将命令拖到菜单或您选择的 CommandBar。关闭 工具栏 对话框。
  3. 单击添加到显示 COM 加载项 对话框的 COM 加载项 命令。对话框中列出所有 COM 加载项在您的系统上安装的并在 COM 加载项当前加载的所选。
COM 加载项还可以加载和卸载通过 Excel 2007 用户界面。若要这样做,请按照下列步骤操作:
  1. 单击 Microsoft Office 按钮,然后单击 Excel 选项
  2. 单击 加载宏
  3. 管理,下单击 COM 加载项,然后单击 定位

    COM 加载项 对话框列出的所有 COM 加载项在计算机上安装的。选择在 COM 加载项当前加载的。
有关 COM 加载项的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
238228HOWTO: 生成的 Office 2000 COM 外接在 Visual Basic 中
230689示例: Comaddin.exe Office 2000 COM 加载项在 Visual c + + 中写入
有关详细的信息,请参阅下面的 Microsoft 网站:
办公室外接程序
http://support.microsoft.com/ofd

自动化加载项

除了 COM 加载项、 Excel 2002 和 Excel 2003 支持自动化加载宏自动化加载项生成上 COM 加载项,可以从 Excel 工作表中的公式调用自动化加载项中的函数。COM 加载项必须是在进程内 COM 服务器支持 IDTExtensibility2 界面 ; 但是,自动化加载项可以是进程内或进程外 COM 服务器和 IDTExtensibility2 的实现是可选的。

若要在 Excel 中使用函数从自动化加载项,请按照下列步骤操作:
  1. 工具 菜单上单击 加载宏
  2. 单击 加载宏 对话框中的 自动化。从已注册的 COM 服务器的列表,选择您的自动化加载项,然后单击 确定
  3. 自动化加载项将显示在 加载项 对话框。单击 确定 以关闭 加载宏 对话框。
若要在 Excel 2007 中使用函数从自动化加载项,请按照下列步骤操作:
  1. 单击 Microsoft Office 按钮,然后单击 Excel 选项
  2. 单击 加载宏
  3. 管理,下单击 Excel 加载宏,然后单击 定位
  4. 单击 加载宏 对话框中的 自动化。在已注册的 COM 服务器的列表中,单击您的自动化加载项,然后单击 确定

    自动化加载项将显示在 加载项 对话框。单击 确定 以关闭 加载宏 对话框。
在进行时添加到列表在 加载宏 对话框中,或当您选择并清除在列表中的外接程序,Excel 将在注册表中存储您所做的更改。第一次,Excel 将使用下面的注册表设置,以确定自动化加载项在添加-在列表中加载:
 Excel 2002
Key:            HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options
String:         OPENx
Sample Value:   /A "ServerName.ClassName"
					
 Excel 2003
Key:            HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options
String:         OPENx
Sample Value:   /A "ServerName.ClassName"
					Excel 2007
Key:            HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options
String:         OPENx
Sample Value:   /A "ServerName.ClassName"
					
/ A 开关,该字符串值中使用的是 Excel 2002 的新 / Excel 2003 和专门用于加载自动化加载项。所有的自动化外接程序会按需加载 ; 没有设置,可以更改为自动化加载项的加载行为。

具有一个名称等中的添加-中的一个子项时清除了自动化加载项在 加载宏 对话框中列出的的 ProgID 创建以下注册表项中:
Excel 2002:
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Add-in Manager
					 Excel 2003:

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager
					
此注册表设置可确保自动化加载已添加到该加载项列表中的项将保留在列表中,即使您已选择不加载这些。

有关自动化外接程序的详细信息,请参阅 Microsoft 知识库中下面的文章:
285337HOWTO: 为 Excel 工作表函数创建 Visual Basic 自动化加载项
有关详细的信息,请参阅下面的 Microsoft 网站:
办公室外接程序
http://support.microsoft.com/ofd

自动化外接程序的实现 IDTExtensibility2

前面已提到自动化加载项可能会实现 IDTExtensibility2,但它不需要在 Excel 中加载项调用该函数,从工作表中的顺序。如果您需要自动化加载项获取一个对 Excel 实例引用,您可以实施 IDTExtensibility2 和使用 应用程序 参数的 OnConnection 自动化 Excel。

可以通过 COM 加载项 对话框和 加载宏 对话框的 Excel 用户界面中加载自动化加载项实现 IDTExtensibility2 的。在以下部分描述行为的一个自动化加载项的基础是否已在一个或两个) 这些对话框中加载:
  • 仅在 加载项 对话框中加载。

    外接程序是按需加载的。可以从工作表中的公式调用外接程序中的函数。
  • 仅在 COM 加载项 对话框中加载。

    作为一个 COM 加载项加载外接程序,其加载行为确定从注册表中的设置。在外接程序中的函数不能调用从工作表中的公式。
  • 加载 COM 加载 项对话框和 外接程序 对话框中。

    加载的加载项的两个单独实例。作为一个 COM 加载项加载一个实例,并作为自动化加载项加载另一个实例。在 COM 加载项实例使用在注册表中所指示的加载行为 ; 按需加载自动化加载项实例。这两个实例独立于另一个工作,并且不共享的全局变量。
因为按需加载自动化加载项,Excel 可能会尝试在单元格编辑模式时加载外接程序。因此,开发自动化加载项支持 IDTExtensibility2 时, 您应该注意,不执行任何操作尝试更改 Excel 的状态时添加-中加载。有关详细的信息,请参阅下面 Microsoft 知识库中相应的文章:
284876错误: Excel 失败时自动化加载宏加载
(c) Microsoft 公司 2001,保留的所有权限。Lori B.旋转器,Microsoft 公司的贡献。

属性

文章编号: 291392 - 最后修改: 2007年1月10日 - 修订: 4.2
这篇文章中的信息适用于:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 标准版
关键字:?
kbmt kbautomation kbinfo KB291392 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 291392
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com