1

次のことを手伝ってもらえますか

コード内で Some.dll バージョン 5.0 を使用しようとしています。ただし、Excel には同じ dll に対する複数の参照があり、4.0 などの以前のバージョンでは次のように実行します。

Set co = CreateObject("SomeClass.Object")

Tools->References で最新の Some.dll の参照を作成したとしても、それはいくつかの機能を持たない最も古い dll の 1 つを呼び出します。

レジストリを変更したり、コンピューターからプログラムを削除したりする管理者権限がありません。

どうにかして最新バージョンの dll への参照を設定することは可能ですか?

私は試した:

Private Declare Function LoadLibrary Lib "kernel32"...
lb = LoadLibrary(C:\somepath\Some.dll) ' lb is the 5.0 version dll that should be used
set co = CreateObject("lb.Object")

ただし、機能していません(「ActiveX ...オブジェクトを作成できません」)

ネット全体を調べましたが、特定のdllパスでオブジェクトを作成する方法についてのアドバイスが見つかりませんでした。

助けてください、ありがとう: ジム

4

2 に答える 2

2

私はその間に解決策を見つけることができました、

役立つのは CreateObjectFromFile() という関数です。

CreateObjectFromFile("C:\somepath\Some.dll", "SomeClass")
于 2011-12-29T11:22:29.197 に答える
1

私は同じ問題に遭遇し、この方法で解決しました:

古いバージョンへの参照:

Set co = CreateObject("SomeClass.Object.4.0")

新しいバージョンへの参照:

Set co = CreateObject("SomeClass.Object.5.0")
于 2012-08-31T12:16:56.103 に答える