0

我的 Excel 插件是用 C# 编写的,但安装程序通过 VBA 宏调用 Excel。我想摆脱VBA。

我想知道下面的 VBA 对注册表做了什么。据我所知,它在HKCU\Software\Microsoft\Office\14.0\Excel\Options. 是这样吗?

Dim MyXLL As AddIn
Set MyXLL = Application.AddIns.Add(addinFile)
If (Not MyXLL Is Nothing) Then
    MyXLL.Installed = True
Else
    MsgBox "Failed to add XLL"
End If
4

2 回答 2

2

您应该尝试使用 c# 中的 excel interop,而不是直接修改注册表,这可能会导致噩梦(严重)。此外,您还必须处理不同版本的办公室等。

通过互操作添加插件:

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.addins.add(v=office.11​​).aspx

添加后安装插件:

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.addin.installed(v=office.11​​).aspx

于 2012-11-30T15:44:20.407 回答
0

使用 VBA 或自动化/互操作中的插件方法可能是最简单的方法,但很难处理在 PC 上安装多个版本的 Excel 的情况。
更全面的解决方案包括为您要安装的每个 Excel 版本编写 OPENn 密钥(其中 n 比当前最高 OPENn 密钥大 1)的安装脚本,并在卸载脚本中反转这些操作(您还需要重写其他 OPENn高于 XLL 的 OPENn 键的键)。您可以在此处http://www.jkp-ads.com/articles/AddinsAndSetupFactory.asp
找到使用 LUA for Setup Factory 的示例脚本

于 2012-12-01T10:47:27.757 回答