使用注册表安装 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.
任何对我搞砸的事情的洞察都会有所帮助。
附加信息:
如果在我启动 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
以下是文件夹中需要存在的文件,插件才能正常工作
- FirstExcelAddIn.dll
- FirstExcelAddIn.dll.清单
- FirstExcelAddIn.vsto
- 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。
我创建了一个名为 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.
任何对我搞砸的事情的洞察都会有所帮助。
附加信息:
如果在我启动 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
以下是文件夹中需要存在的文件,插件才能正常工作
- FirstExcelAddIn.dll
- FirstExcelAddIn.dll.清单
- FirstExcelAddIn.vsto
- 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。