使用注册表安装 Excel 加载项

Using Registry to install Excel AddIn

我创建了一个名为 excel 的加载项

Project Count_Per Person.xlam

当我打开 excel 并转到 Development>AddIns 和 select 我的 AddIn 进行安装时,如果我关闭 excel 即使保存后它也不会保持安装状态。我制作的 AddIn 在选项卡 'AddIns'

下创建了一个新的 MenuBarButton

所以我在

下创建了一个新的注册表项以在启动时安装插件

HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\ProjectCount_PerPerson

钥匙看起来像这样

(Default)     REG_SZ        (value not set)
Description   REG_SZ        Project Count_Per Person
FriendlyName  REG_SZ        Project Count_Per Person
LoadBehavior  DWORD         0x00000003 (3)
Manifest      REG_SZ        C:\Users\b012918\AppData\Roaming\Microsoft\AddIns\Project Count_Per Person.xlam

当我启动 Excel 时,它显示它正在安装 AddIn,但随后我得到一个

Exception reading manifest from

file:///C:/Users/b012918/AppData/Roaming/Microsoft/AddIns/Project%Count_Per%Person.xlam:

the manifest may not be valid or file could not be opened.

http://pastebin.com/bN1datV5

任何对我搞砸的事情的洞察都会有所帮助。

附加信息:

如果在我启动 excel 时插件被卸载,它会给出清单错误。如果当我启动 excel 时插件是 'checked',它会在下面的评论中给出下载错误。即使以前安装了插件,CommandBarButton 也不会保留在原位。此外,在选项--> 插件下,插件被声明为“活动”。

我用 Visual Studio 构建了一个名为 'FirstExcelAddIn' 的加载项,并查看它在构建注册表项时做了什么。根据问题中显示的键,我的注册表是正确的,我只是没有在 COM 插件中找到它要查找的所有文件。

这是我正常运行的插件在注册表中的样子

(Default)     REG_SZ        (value not set)
Description   REG_SZ        FirstExcelAddIn
FriendlyName  REG_SZ        FirstExcelAddIn
LoadBehavior  DWORD         0x00000003 (3)
Manifest      REG_SZ        C:\Users\b012918\AppData\Roaming\Microsoft\AddIns\FirstExcelAddIn.vsto|vstolocal

以下是文件夹中需要存在的文件,插件才能正常工作

  1. FirstExcelAddIn.dll
  2. FirstExcelAddIn.dll.清单
  3. FirstExcelAddIn.vsto
  4. Microsoft.Office.Tools.Common.v4.0.Utilities.dll

我怀疑如果您在没有工具的情况下从头开始编写插件,您只需要 '.dll' '.dll.manifest' 让你的插件工作。

澄清一下,Excel(和其他 Office 应用程序)有两种类型的插件,VBA 插件和 COM 插件。 COM 插件是通过 Visual Studio 和 Visual Studio Office 工具开发的。这就是 brett s 所指的。

但更可能的类型是普通 VBA Excel 插件,通常通过 .xlam 文件分发。 为了为用户自动加载这样的插件,您需要机器上某个本地目录中的插件文件并通过注册表引用它。 对于 Excel 2010,加载相应注册表项的 REG 文件是:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office.0\Excel\Options]
"OPEN"="C:\Path\To\Addin\Addin.xlam"

这样每次启动时都会加载插件 Excel。