Excel VBAで、あるフォルダー下のExcelファイル群について、順番にファイルを開いて値を取得する、という処理を書いていました。
そんな中、以下の箇所で、エラー1004が発生。
Workbooks.Open [ファイル名]
何度繰り返しても同じです。
調べてみると、マイクロソフトのサポートに情報がありました。
Excel で、プログラムを介してワークシートをコピーすると「実行時エラー 1004 」が発生する
定期的に保存しなさい、とのことです。
なので、上記処理の前に以下を追加。
Application.ActiveWorkbook.Save
ですが、改善されません。
VBAでのファイル読込エラーの対応方法
On Errorでエラー処理する、と書いていますが、それはとっくにやっています。どうやら、通常にはエラーハンドリングされないケースのようです。
同じように、1000以上のファイルを開く、という処理は別のプログラムでやったことがあり、そのときには何の問題もなく動作しましたので、理由が思い当たりません。
何度も試して諦めかけていましたが、上記リンク先にある以下の一文を念のため追加して実行。
Application.ScreenUpdating = False
。。。上手く行きました!!!
うーん、よく分かりませんが、Excel VBA(特にExcel固有のWorkbookとか)はいろいろと誤動作がまだあるようで、おまじないが必要な状況のようです。
0 件のコメント:
コメントを投稿