• ベストアンサー

VBAから.NET DLLを任意フォルダから呼ぶ

VBAからRegistration-Freeで.NETベースのDLLを、任意のフォルダに置いて呼ぶ方法を教えてください。 https://www.ka-net.org/blog/?p=6198 このサイトではDLLをVBAの実行元(ExcelならEXCEL.EXE)と同じフォルダに置くと動くのですが、任意のフォルダに置いて動かす方法が分かりません。 何卒、ご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.1

Private Declare PtrSafe Function AddDllDirectory Lib "kernel32.dll" (ByVal fileName As String) As LongPtr 宣言をしておいてAddDllDirectoryで任意のフォルダをdll検索パスに追加してから呼んでみるとどうでしょう。

shakamandara
質問者

お礼

以下のように宣言してdllのパスを指定したのですがダメでした。 Private Declare PtrSafe Function AddDllDirectory Lib "kernel32.dll" (ByVal fileName As String) As LongPtr Private Sub Workbook_Open() AddDllDirectory ("C:\system") End Sub お忙しい中、貴重なアドバイスありがとうございました。

その他の回答 (1)

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

任意だと、パスを指定しないとダメです。 https://qiita.com/mmYYmmdd/items/fc1d3cce6a39771c0f36

shakamandara
質問者

お礼

C++で作成したDLLの場合にはDeclareの任意のパス指定でOKでした 今回はC#で作成したDLLをレジストリ登録なし(RegAsm行わない)で任意の場所からActCtxなどを介してVBAで呼びたかったのですがダメでした。 お忙しい中、貴重なアドバイスありがとうございました

関連するQ&A

専門家に質問してみよう