[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ファイル読み込みのエラー』(コヨーテひな)
Set ファイルシステム = CreateObject("Scripting.FileSystemObject") あるブック = Application.GetOpenFilename("Excelファイル(*.xls),*.xls") Set 親フォルダー = ファイルシステム.GetFile(あるブック).ParentFolder
For Each ファイル In 親フォルダー.Files Workbooks.Open ファイル.Path ブック名 = ActiveWorkbook.Name ・ ・ 処理 ・ ・ Next 上記のように、フォルダにあるファイルを全て読み込んで処理していますが、 ファイルが無くなっても、読み込みに行って、Workbooks.Openのステップで ("1004"クエリが実行できないか、または、データベーステーブルを開けませんでした。) というエラーで止まってしまいます。 ファイルが無くなったら、そのまま終了するには、どうしたらいいのでしょうか。 上記のマクロは、他に人に作成してもらったマクロです。 Excel2007,Windows 7
ファイルがなくてもといった事がどういう意味なのか解りませんが これで、確認してみてください。 BJ
あるブック = Application.GetOpenFilename("Excelファイル(*.xls),*.xls") Set 親フォルダー = CreateObject("Scripting.FileSystemObject").GetFile(あるブック).ParentFolder
MsgBox 親フォルダー
For Each ファイル In 親フォルダー.Files
MsgBox ファイル
'Workbooks.Open ファイル.Path 'ブック名 = ActiveWorkbook.Name Next
先ほどは書きませんでしたが、フォルダの中のファイルを4個にすると処理は正常に終了します。
実際のファイルは78個あります。この場合エラーになってしまいます。
>このファイルは実際は存在しません。
にわかに信じがたいですが、応急措置として ファイル数の確認とエクセルファイルだけ開くようにしてみたらどうなりますか?
Sub test() Set ファイルシステム = CreateObject("Scripting.FileSystemObject") あるブック = Application.GetOpenFilename("Excelファイル(*.xls),*.xls") Set 親フォルダー = ファイルシステム.GetFile(あるブック).ParentFolder
MsgBox "ファイル数" & 親フォルダー.Files.Count
For Each ファイル In 親フォルダー.Files
If ファイル.Type Like "Microsoft Excel*ワークシート" Then Workbooks.Open ファイル.Path ブック名 = ActiveWorkbook.Name ActiveWorkbook.Close ' ・ ' ・ ' 処理 ' ・ ' ・ End If Next
End Sub
(半平太) 2012/06/21 14:50
どうもありがとうございました。
IF文にファイルの種類を指定するところが、少々気になりますが、今のところは問題ありません。
>ファイル数は、79個でした。やはり1個多いです。実際のフォルダの中にはありません。
それだけ状況証拠がそろっていれば、ファイルは79個だと思いますよー。
Thumbs.dbが隠しファイルになっているのではないですか?
<ご参考> 画像の入ったフォルダにある「Thumbs.db」って何ですか? http://trendy.nikkeibp.co.jp/article/qa/20060208/115301/
それが有害無益のファイルなら削除してしまったらどうでしょうか?、 そうすればエクセルファイルかどうかチェックをするIF文も必要なくなります。
(半平太) 2012/06/21 16:19
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.