みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VBAでDLLが見つからないエラー

CADのVBA(6.0)ですが、DLLが見つからないエラーが出ます
' こっちはエラーが出ない
Public Declare Function SearchVBApath Lib _
"C:\Program Files\AppliTool\VB\DDDD.dll" (ByVal env As String, ByVal s As String) As Integer
'こっちだとエラーが出る
Public Declare Function SearchVBApath Lib "DDDD.dll" (ByVal env As String, ByVal s As String)    As Integer
VBAプロジェクトファイルとDLLは同じフォルダにおいてあります
上記のようにフルパスだとエラーが出ないのですがDLL名だけだとこの関数のところでエラーがでます
このDLL関数宣言行の前の方には他のDLL関数も同じようにパス省略で記述しているのですがそちらにはエラーが出ません
どなたかヒント下さい、よろしくお願いします。

投稿日時 - 2011-12-05 20:40:07

QNo.7173246

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

AutoCAD でしょうか、それとも VBA が組み込まれた別の CAD 製品でしょうかね。
そっち方面には詳しくないのですが、例えば Excel VBA の場合もデーター ファイルと DLL を同じ場所に置いてファイル名だけ指定しても NG です。
Excel VBA で言う場合のカレント フォルダーはオプションで設定する "既定のファイルの場所" (Excel 2007 の場合) です。
MsgBox CurDir
でカレント フォルダーがどこなのか確認できます。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=5215;id=excel

投稿日時 - 2011-12-06 19:57:11

お礼

temtemomai さん
piyo2000 さん
回答ありがとうございました、
申し訳ありません、やはりこれだと!いう解決ヒントにはなりませんでした
質問に書きましたが、宣言部には同じDLL内の他の関数も羅列しているのですが
この関数だけがエラーを出すのです
最初はフルパス書いていたのですがソースとDLLを同じ所に置けば
見つけるのを確認してパスを消していったらこんなことになってしまいました。

投稿日時 - 2011-12-07 10:25:34

ANo.1

>VBAプロジェクトファイルとDLLは同じフォルダにおいてあります

デバッガ(IDE上)での話ですよね?
この場合、カレントはVB6.exeのインストールパスとなるので、見つからないのだと思います。(プロジェクトファイルは関係なかったはず)

試しに("DDDD.dll"で)コンパイルしてexeにし、exeとDLLを同じパスに置いて実行してみてください。動くと思います。

投稿日時 - 2011-12-06 00:53:35

あなたにオススメの質問