2016年2月18日木曜日

Excel VBAでエラー1004が出る

Excel VBAで、あるフォルダー下のExcelファイル群について、順番にファイルを開いて値を取得する、という処理を書いていました。

そんな中、以下の箇所で、エラー1004が発生。


Workbooks.Open [ファイル名]

何度繰り返しても同じです。
調べてみると、マイクロソフトのサポートに情報がありました。
Excel で、プログラムを介してワークシートをコピーすると「実行時エラー 1004 」が発生する

定期的に保存しなさい、とのことです。
なので、上記処理の前に以下を追加。

Application.ActiveWorkbook.Save

ですが、改善されません。
VBAでのファイル読込エラーの対応方法

On Errorでエラー処理する、と書いていますが、それはとっくにやっています。どうやら、通常にはエラーハンドリングされないケースのようです。

同じように、1000以上のファイルを開く、という処理は別のプログラムでやったことがあり、そのときには何の問題もなく動作しましたので、理由が思い当たりません。
何度も試して諦めかけていましたが、上記リンク先にある以下の一文を念のため追加して実行。

Application.ScreenUpdating = False


。。。上手く行きました!!!

うーん、よく分かりませんが、Excel VBA(特にExcel固有のWorkbookとか)はいろいろと誤動作がまだあるようで、おまじないが必要な状況のようです。

0 件のコメント:

コメントを投稿