プロが教える店舗&オフィスのセキュリティ対策術

Excelで、開いた時に「OPEN」プロシージャにて、あるDLLの参照設定(SOLVER32.DLL)を行いたいのですが、以前のQ&Aで記載されていた方法で行おうとするとエラーが発生し、うまくいきません。

どなたか方法をご存知の方おりましたら、よろしくお願いします。

(環境)
Windows XP SP2
Excel 2003 SP2

(コード)
Private Sub Workbook_Open()
ThisWorkbook.VBProject.References.AddFromFile "c:\SOLVER32.DLL"
End Sub

(エラー内容)
 実行時エラー'1004'
 アプリケーション定義またはオブジェクト定義のエラーです。

以上

A 回答 (2件)

こんにちは。



提示のコードでOKですが、条件があります。
xl2002以降でVisualBasicオブジェクトモデルへアクセスする場合は
コード実行前に以下の準備をしておかなければいけません。

------------------------------------------------------------

メニューバー「ツール」 > 「マクロ」 > 「セキュリティ」

表示される「セキュリティ」ダイアログの「信頼のおける発行元] タブをクリック

表示される画面の「Visual Basic プロジェクトへのアクセスを信頼する」にチェックを入れる

----------------------------------------------------------------

これで提示のコードはうまく実行されると思います。
以上です。
 
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。
ご指摘の通り行うと、参照設定がうまくいくようになりました。

ただ、1点問題ありまして、Excelを開いた時に「DLL読み込み時のエラーです」とエラー画面が表示されてしまいます。
ですが、参照設定はうまくいっているので、そんなには問題ではないですが・・・

もし原因ご存知でしたらご教示頂きます様、よろしくお願い致します。

以上

お礼日時:2007/01/22 08:52

こんにちは。

再度の登場です。

参照設定うまくいって何よりです。
ところで「DLL読み込み時のエラーです」のことですが
Microsoft DAO3.6 Object Libraryのdao.dllで以下を試してみました。

------------------------------------------------------------
Sub test()
 Dim myPath

◎myPath = "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll"
■myPath = "C:\Program Files\Common Files\Microsoft Shared\DAO\daoXXX.dll"
▲myPath = "C:\Program Files\Common Files\Microsoft Shared\XXX\dao360.dll"

 ThisWorkbook.VBProject.References.AddFromFile myPath
End Sub
------------------------------------------------------------

結果は以下の通りです。

(OK)◎:正しいパス(ファイル名までのフルパス)
(ER)■:誤ったファイル名(上位パスは正しいがファイル名をミス)
(ER)▲:誤ったパス(ファイル名のひとつ上位のフォルダーをミス)

どうもパス名やファイル名を間違うと「質問のエラー」がでるようです。
万が一ということもありますのでそれらを再度確認してみたらどうでしょうか。
以上です。

 
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!