| 
    
     |  | こんばんわ。 
 COMアドイン(DLL)は普通はレジストリに登録されてるはずやから
 そっからデータを取得したらええんとちゃいまっか?
 取得するにはDLLのクラス名を知っておく必要があります。
 自分で作ったんやったら、わかってるとは思うけど、
 クラス名=プロジェクト名.デザイナモジュール名です。
 VbaProject.Disigner1 なんて感じ。
 
 レジストリからDLLのパスを取得する関数を作ってみました。
 
 Function GetDllPath(ByRef Class As String) As String
 Dim WSH As Object
 Dim ClassID As String
 
 On Error Resume Next
 GetDllPath = ""
 Set WSH = CreateObject("Wscript.Shell")
 ClassID = WSH.RegRead("HKCR\" & Class & "\Clsid\")
 GetDllPath = WSH.RegRead("HKCR\CLSID\" & ClassID & "\InprocServer32\")
 GetDllPath = Left$(GetDllPath, InStrRev(GetDllPath, "\") - 1)
 Set WSH = Nothing
 End Function
 
 ↓こんな感じで取得できると思います。
 
 Sub test()
 MsgBox GetDllPath("VbaProject.Disigner1")
 End Sub
 
 但し、この方法は開発中はレジストリに未登録なんで、使えまへん。
 DLLを作成したら使えるようになるってこと。
 せやから開発環境での動作チェックは・・・無理やね(^^;;
 開発中は上記のコードはコメントアウトして、固定のパスを使い、
 DLL作成前にコメント解除するとかやろねー
 
 ま、いっぺん試してみてな。
 ほな。
 
 |  |