※ ChatGPTを利用し、要約された質問です(原文:MSアクセスVBAでメモリ不足?)
MSアクセスVBAでメモリ不足?
このQ&Aのポイント
MSアクセスのVBAマクロを使い、テーブルから取得したデータをエクセルブックに貼り付けるアプリを作成しています。
しかし、値をセットする際に『実行時エラー1004:アプリケーション定義またはオブジェクト定義のエラーです』というエラーが発生します。
問題の原因はメモリ不足かもしれませんが、処理中にエクセルブックを保存したり再度開いたりしてもエラーは解消しません。
MSアクセスのVBAマクロを使い、テーブルから取得したデータを、エクセルブックに貼り付けるアプリを作ったのですが、
エクセルに値をセットするステップ(Cells(x,y)value = 取得したデータ)で
『実行時エラー1004:アプリケーション定義またはオブジェクト定義のエラーです』
というエラーが発生します。
エラーをなくすにはどうしたらいいのでしょうか。
ブック内のシート数は、全部で何十シートにもなるのですが、
データによって、エラーが発生するシートが違うこと、
10~20シートごとに1回はエラーが発生すること、
エラーが発生した時に、原因になった行をコメントアウトしても、その次の行でエラーになること、
などから、もしかしたら処理の途中でメモリ不足になっているのかもしれない、と感じているのですが、
処理の途中でエクセルブックを保存したり、一度閉じて再びOpenしたり、してみましたが、エラーは出てしまいます。
メモリは関係ないのでしょうか。。。
お礼
実経験からの的確なアドバイスありがとうございます。 他の方の回答も参考にしながらコピー&ペーストしている箇所をコメントアウトするとエラーは発生しなくなり、原因が絞り込めました。 各シートの中で 1.罫線&書式を揃える為に前の行(x-1行)をコピー 2.(x行に)貼り付け 3.Cells(x,y)value = 取得したデータ 4.Cells(x,y+1)value = 取得したデータ ・・・ というロジックになっており、3.でエラーが発生していました。 おそらく貼り付け処理が完了する前に値をセットしようとしてエラーになっていたものと思われます。 3.と4.の間にDoEvents命令を入れることで解決しました。