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

下記のごときマクロをEXCELマクロに記入し、動かすとExcel2003では問題なく動くのですが、
Windows7+Excel2010の評価版を新規インストールした環境では「Call testDll」の文のところで
「実行時エラー48 ファイルが見つかりませんC:\Temp\testDll.dll」と出てしまうのです。
 しかし、C:\Temp\testDll.dllは置いてあるのです。
 Declare文の仕様が変わっているのでしょうか?
 どこに問題があるのでしょうか?
一応、マクロのセキュリティでc:\temp\は信頼できる場所にはして見たのですが変わりませんでした。


Declare Sub testDll Lib "C:\Temp\testDll.dll" ()
Sub Macro1()
'
Cells.Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

ChDir "C:\temp"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="C:\temp\testDATA.csv", FileFormat:=xlCSV, _
CreateBackup:=False
ActiveWindow.Close
Range("A1").Select
Application.DisplayAlerts = True

Call testDll

'計算結果の読込み

sdname = "C:\temp\testMES.csv"
myfile = Dir(sdname) 'ファイルが存在しなければ空白
If myfile = "" Then '存在しない場合は
MsgBox ("エラー発生") 'メッセージを表示
Else
Workbooks.Open Filename:=sdname '存在する場合は開ける
MsgBox ("正常終了") 'メッセージを表示
End If
End Sub

A 回答 (1件)

ファイルがあるのに「見つかりません」って言われるのは、フォルダ、およびファイルのアクセス権がない場合があると思いますが、C:\Temp、およびtest.dllのアクセス権は問題ないでしょうか?


(エクスプローラから右クリック→プロパティで、それらしいタブがあると思います。)

この回答への補足

追記情報です。
1、 windows7+excel2003 の組合せで同じマクロを実行してみると、同じエラーを起こしました。
 Windows7の問題の様です。
 当然、Windows7でc:\tempのホルダーへのアクセス権は付けました。

2、見つからないといわれるtestDll.dllをc:\WINDOWS\system c:\WINDOWS\system32 の両方にコピーし、declale文を次の様に絶対パスをはずしましたが、エラーメッセージは変わらずでした。
Declare Sub testDll Lib "testDll.dll" ()

補足日時:2011/01/13 06:59
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。

 しかし、C:\Temp、およびtestdll.dllのアクセス権をプロパティで調べてみましたが、共にfullコントロールがついており、問題ではありませんでした。

 (お礼が遅くなり申し訳ありませんでした)

お礼日時:2011/01/12 21:16

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