|
▼tenjinyama さん:
>Excel から呼ぶ関数ですが、Excel vba でどのように動的にロードが実現可能か分らないでいます。
>
>Excelのカレントフォルダに置いておけばよいのは分っているのですが、カレントフォルダの設定に制約を設けるのはトラブルの元なので、この方法は除外しました。
↑
全然意味を理解してもらっていないようなので少し詳しくかきます。
dllファイルはもちろん任意のフォルダにあるとします。
例として ThisWorkbookと同じフォルダにxxx.dllがあると仮定して...
案1.dllのフォルダへ ChDir してdllの関数を呼ぶ。
Sub test1()
Dim Path$
Path = ThisWorkbook.Path
ChDrive Path
ChDir Path
'ここでdllの関数を用いる
End Sub
案2.明示的にOpenイベントあたりで LoadLibrary関数(api)でdllファイルをロードする。
Private Sub Workbook_Open()
Dim Dll$
Dll = ThisWorkbook.Path & "\xxx.dll"
LoadLibrary Dll
End Sub
'これ以降dllの関数はいつでも使える。
'LoadLibraryのDeclareステートメントは自分で記述してください。
|
|