摘要
除组件对象模型(COM)加载外,Microsoft Office Excel还支持自动加载项。本文介绍了这两种类型的加载项之间的区别。
详细的COM加载项
COM加载项为开发人员提供了一种扩展Office应用程序中自定义任务功能的方法。 COM加载项通常用于使Excel自动运行,以响应单击命令栏按钮,窗体或对话框,或其他特定于Excel的事件(例如打开或关闭工作簿或工作表)。您不能直接从工作表中的单元格公式调用COM加载项函数。
COM加载项必须在进程COM服务器(ActiveX DLL)中实现IDTExensibility2接口。所有COM加载项都必须实现此接口的五个方法中的每个方法:OnConnection,OnStartupComplete,OnAddinsUpdate,OnBeginShutDown和OnDisconnection。
安装COM加载项后,它将在用户系统上为该加载项创建一个注册表项。除了普通的COM注册外,还注册了COM加载项,可在其中运行每个Office应用程序。 Excel将使用COM加载项在以册表项中注册:
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\
此项目包含有关每个已安装的COM加载项的子项目。该子项的名称是用于COM加载项的ProgID。 COM加载项的子项还包含描述COM加载项的友好名称,描述和加载行为的值。加载行为描述了加载项如何在Excel中加载:根据需要加载或未加载,在启动时加载以及在启动时加载。
COM加载项也可以通过Excel用户界面进行加载和卸载。为此,请按照下列步骤操作:
在“查看”菜单上,指向“工具栏”,然后单击“自定义”。

在“工具栏”对话框中,单击“高级”选项卡。在类别列表中,选择“工具”。在COM加载项列表中找到命令,然后将该命令拖到您选择的菜单或命令栏中。关闭工具栏对话框。
单击“添加”以在“ COM加载项”对话框中显示COM加载项命令。该对话框列出了系统上安装的所有COM加载项,并选择当前要加载的COM。
可以通过Excel的用户界面同时加载和卸载
COM加载项。为此,请按照下列步骤操作:
单击Microsoft Office按钮,然后单击Excel选项。
单击附件。
单击“管理”下的COM加载项,然后单击“执行”。
“ COM加载项”对话框列出了计算机上安装的所有COM加载项。选择当前加载的COM加载项。
有关COM加载项的其他信息,请单击下面的文章编号,以查看Microsoft知识库中相应的文章:

238228如何:在Visual Basic中的COM加载项中生成Office 2000
230689示例:Comaddin.exe Office 2000在COM加载项中编写Visual C ++
有关更多信息,请访问下面的Microsoft网站:
Office加载项
自动加载项
除COM加载项外,Excel还支持自动化加载项。自动化加载项是在COM加载项中生成的,可以从Excel工作表中的公式调用自动化加载项功能。 COM加载项必须支持IDTExtensibility2接口。并行进程内COM服务器。但是,自动化加载项可以是进程内或进程外COM服务器,IDTExtensibility2的实现是可选的。
要在Excel中使用自动化中的加载项功能,请按照以下步骤操作:
在“工具”菜单上,单击“加载项”。
在“加载项”对话框中,单击“自动”。从已注册的COM服务器列表中,选择自动化加载项,然后单击“确定”。

自动加载项出现在加载项对话框中。单击“确定”关闭加载项对话框。
要在Excel 2007和更高版本中使用Automation中的加载项功能,请按照以下步骤操作:
单击Microsoft Office按钮,然后单击Excel选项。
单击附件。
在“管理”下,单击“ Excel加载项”,然后单击“执行”。
在“加载项”对话框中,单击“自动”。在已注册的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"

注意:更改Office版本的数量取决于您使用的版本。
/ A开关在字符串值中使用新旧Excel,并且专门用于加载自动化加载项。所有自动化加载项均按需加载;没有设置可以更改自动化加载项的加载行为。
当外接程序对话框中列出了自动外接程序时,如果清除了此项,则子项名称等于该外接程序的进程ID,并创建以册表项:
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
HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 11.0 \ Excel \ Add-in Manager
此注册表设置可确保将这些自动化加载项添加到加载项列表中,甚至在您选择不加载后也保留在列表中。
有关自动加载项的更多信息,请参考Microsoft知识库中的以下文章:

285337如何:为Excel工作表函数创建Visual Basic自动化加载项
有关更多信息,请访问下面的Microsoft网站:
Office加载项
实施IDTExtensibility2自动化加载项
如前所述,自动化加载项可以实现IDTExtensibility2,但不需要从工作表中调用这些函数即可制作Excel加载项。如果需要自动化加载项来获取对Excel实例的引用,则可以实现IDTExtensibility2并使用OnConnection的应用程序参数使Excel自动运行。
自动执行插件
IDTExtensibility2可以通过COM加载项对话框和加载项对话框加载到Excel用户界面中。下面描述的自动加载项基于是否要在以下一个或两个对话框中加载的行为:
由于自动加载项是按需加载的,因此Excel可能会尝试以单元格编辑模式加载该加载项。因此,在开发支持IDTExtensibility2的自动化加载项时,应注意不要执行任何操作来尝试更改Excel加载项在加载时的状态。有关更多信息,请参考Microsoft知识库中的以下文章:
284876错误:加载自动加载项时,Excel无法正常工作
(c)微软公司保留2001年的所有权利。罗小东B. Rotator,微软的股份。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-341740-1.html
我们家千玺配的棒棒的
从这个角度上来说
奥巴马这是在转移视线