0

Microsoft "Visual Basic 6.0 Extensibility"への参照を持つVB6_IDE_Add_Inを VB6 で正常に作成しました。ただし、このアドインを VBA IDE (Excel、Access) で使用するには、VB6_IDE_Add_In プロジェクトのコピーを作成し名前VBA_IDE_Add_Inに変更し、そのプロパティの名前を変更する必要がありました。アプリケーションの拡張性 5.3" .

最後に、VB6 用と VBA 用の 2 つの dll があります。どちらも"regsvr32"を実行し、 VBA-IDE-Add-Inレジストリ キーを VB6 キー"[HKCU\Software\Microsoft\Visual Basic\6.0\Addins]"から VBA キー[HKCU\Software\Microsoft\ ]に手動で移動する必要があります。 VBA\VBE\6.0\アドイン] ...

条件付きコンパイルまたはコマンド ライン パラメータを使用して、VB6 または VBA 環境に応じて右参照を使用する単一の dll をコンパイルする方法はありますか?

残念ながら、これは私の最初のアドインであり、この件に関しては私の経験では不十分です...

4

1 に答える 1

3

VBIDE両方のライブラリが同じ名前を共有し、VB6 プロジェクトは同じ名前の 2 つの参照を許可しないため、VB6 で VB6 と VBA 用に 1 つのアドインをコンパイルできるとは思えません。MZTools 3.0 は、VB6 で作成されたとき、VB5 (VB 拡張ライブラリのさらに別の以前のバージョンを使用)、VB6、および VBA のバージョンを公開していました。MZ ツール バージョン 8 のリリース以降、ソースは .NET に移行され、複数の環境とVB/VBA ホストの 32 ビット/64 ビット バージョンのサポートがはるかに簡単になりました。

リードに従って、.NET を使用してソリューションを開発するのが賢明です。MZ Tools や Rubberduck VBA などの .NET ソリューションは、32 ビットおよび 64 ビットのホストで使用でき、VBIDE タイプ ライブラリから独自の相互運用機能アセンブリを作成 (およびそのタイプを埋め込む) することで、単一の dll を作成できます。 VB5、VB6、および VBA 用。

Rubberduck VBA はまだ VB6 のサポートを追加していませんが、現在取り組んでいます。

OnConnect および OnDisconnect 処理を備えた共有 VB6およびVBA 拡張性アドイン

于 2016-08-23T00:08:34.763 に答える