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

解決済みの質問

EVAでマクロ有無チェックについて

Excel VBAで指定したフォルダ配下のExcelファイルのマクロ有無チェックをしたいと思っています。
マクロ有無チェックまではできたのですが、パスワードを設定しているExcelファイルがあると、
そこでエラーとなってしまいます。

パスワードが設定されているExcelファイル(パスワード不明)は、フォルダパスとファイル名をSheet2に書き出し、次のファイルチェックに行くようにしたいのですが、よくわかりません。

どなたかご教授下さい。

Excel2003です。

以下まではできています。

filelist = Dir(FoldPath & "\" & "*.xls")
Do While filelist <> ""
Application.EnableEvents = False
Set Target = Workbooks.Open(FoldPath & "\" & filelist)

マクロ有無チェック
   Sheet1にフォルダパス、ファイル名、マクロ有無を書き出す

   Target.Close
Application.EnableEvents = True
filelist = Dir()
Loop

投稿日時 - 2012-01-17 22:59:34

QNo.7250846

困ってます

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

姑息な手段ですが
Sub pwdTrap()
On Error GoTo errH
Workbooks.Open ("d:\123\pwd.xls"), Password:=""
Exit Sub
errH:
If Err.Number = 1004 Then
ここでファイル転記処理
Resume Next
End If
End Sub

なら、パスワード設定していないファイルはそのまま開けますし
設定してあるものはTrap出来るのでは?当方2010

投稿日時 - 2012-01-18 11:30:14

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

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

回答(2)

ANo.1

一例です。
エラーEXITで対応しては如何でしょうか。
詳細はweb検索してみて下さい。

On Error GoTo エラー処理 'エラーExit宣言
filelist = Dir(FoldPath & "\" & "*.xls")
 ~

エラー戻り:        
Target.Close

以下コードをEnd Sub文直前に追加
Exit Sub
エラー処理:
 ~Sheet2にフォルダパス、ファイル名を書き出し~
 Resume エラー戻り

End Sub

投稿日時 - 2012-01-18 11:26:42

あなたにオススメの質問