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 相互運用機能を使用してみてください。また、さまざまなバージョンのオフィスなどに対処する必要があります。

相互運用によるアドインの追加:

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または自動化/相互運用機能のAddinsメソッドを使用するのがおそらく最も簡単な方法ですが、PCに複数のバージョンのExcelがインストールされている状況を処理するのは困難です。
より包括的なソリューションには、インストールするExcelバージョンごとにOPENnキー(nは現在の最大のOPENnキーより1大きい)を書き込むインストールスクリプトと、アンインストールスクリプトでこれらのアクションを逆にすることが含まれます(他のOPENnも書き直す必要があります)。 XLLのOPENnキーよりも高いキー)。
セットアップファクトリにLUAを使用したスクリプトの例は、http: //www.jkp-ads.com/articles/AddinsAndSetupFactory.aspにあります。

于 2012-12-01T10:47:27.757 に答える