• ベストアンサー

エクセル2003 リソース不足

ご質問です。 エクセルのマクロ実行中に下記エラーが出ます。 「リソース不足のため、このタスクを完了することができません。選択データを少なくするか、他のアプリケーションを終了して再度試してください。」 しかし、現在このエクセルのみを実行しています。 ただ、このエクセルファイルが5Mほどある大きなものです。 これが影響していますか? もし、対処の方法がありましたら お教え下さい。 よろしくお願い致します。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 私は、アドバイスにも至らないけれど、スタック不足なら分かるけれど、リソース不足というのは、マクロのコード自体の問題ですが、たぶん、根本的なものです。おそらくは、コード全体を書き換えないと、直すことは不可能だと思います。私自身は、ブックのトラブル以外は、それは出しませんが、相談は以前受けたことがあります。残念ながらお断りしました。手が付かなかったのです。記録マクロではうまく行かないわけで、作り上げる前に、ある程度の設計をしないとダメなのです。 1.ループの中にRange 型のオブジェクト変数を置き、それを溜めて解放しない。 2.モジュールの中に、数式を数百も置き、それを、Formula プロパティで、それぞれ、セルに埋め込む。 この2点に限るように思います。 1.は簡単に直るけれども、2.は簡単ではありません。R1C1方式に慣れていれば、統一式が見出せるのですが、A1方式では、別々のものに見えてしまいます。それで、中身は同じ数式をいくつもマクロの中に書いてしまう例が多いです。まず、ダブりを省くことを考えます。 おそらく、コードを公開しない理由としては、コードが長すぎて、ここには書けない、ということではありませんか? 私の経験でお話を書かせていただきましたが、違っていましたら、ご容赦ください。 プロシージャは、基本的に、長くても100行程度を目処にします。そして、構造化していきます。また、モジュールは標準モジュールを使いわけます。ローカルモジュールには、あまり大きなものは入れない、というぐらいを、今は書いておきます。

netz-t
質問者

お礼

ありがとうございます。 今後ともよろしくお願い致します。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

>...選択データを少なくするか... ですから大きすぎるのでしょうね。 現状での対処は、 1.半分以下の件数でブックを複数に分けてから、一つずつのブックでマクロを実行する。 2.ユーザー定義の書式や数式など、リソースを食う設定を減らす。 3.ディスクトップ上のファイルの退避、常駐ソフトの一時停止でリソースを増やす。 4.メモリーの増設か、今のPCよりスペックが上のPC上で実行する。

netz-t
質問者

お礼

ありがとうございます。 今後ともよろしくお願い致します。

関連するQ&A

専門家に質問してみよう