-PR-
  • すぐに回答を!
  • 質問No.3072412
解決
済み

エクセルのリソース不足

  • 閲覧数18176
  • ありがとう数4
  • 気になる数1
  • 回答数2
  • コメント数0

お礼率 83% (141/169)

エクセル2003で列全体を指定して文字の中央揃えをしていたら
突然
「リソース不足のため、このタスクを完了できません。
選択するデータを少なくするか、ほかのアプリケーションを
終了して再度試してくださ」

とメッセージがでました。

確かに大きなファイル(50MB)でマクロも数式もたくさん使用していますが
こんなのは初めての経験なので驚いています。

このとき
ほかのアプリケーションは起動させていませんでした
マクロの変数宣言でリソースを使い過ぎているのでしょうか
選択するデータを少なくすればこのまま使い続けられるか不安です
対処法を教えてください
  • 回答数2
  • 気になる数1

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

  • 回答No.2
レベル10

ベストアンサー率 59% (60/101)

Barracudaです。
> マクロの変数宣言でリソースを使い過ぎているのでしょうか
この部分に注目しすぎました。
Excelマクロは標準モジュールに記述するから、ここに変数を大量に定義すればリソース不足になるかもしれない、と思ったのです。
しかし、マクロ実行中ではなく列全体を中央揃えしているときにリソース不足が発生したのなら、マクロは関係ありません。
大量に変数を定義していても、マクロが終了すれば解放されるからです。
このあたりがアプリを作成する際のAccess的考え方をしていました。

ちなみに、グローバル変数を説明すると長くなるので、「すべてのワークシートから参照できる変数」と思ってください。
キーボードマクロが記録される「標準モジュール」内に記述するとグローバル変数になります。
これに対し、シートやフォームで定義する変数が「ローカル変数」で、定義したモジュール内でしか使えません。
当然グローバル変数の方がリソースを多く使うので、なるべくローカル変数にすると良いかもしれないと思いました。
ちなみに、標準モジュールに記述する必要があるのは、複数のモジュールで共通に使用するサブルーチンや変数、ロード時に実行させたいコードなど、限られています。

ご質問のリソース不足ですが、画像がない状態で50MBもあり、計算式が大量に記述されていれば、再計算時に相当リソースを消費しそうです。
計算を手動にしてリソース不足が発生しなければ、単にファイルが大きすぎるだけ、という可能性が高くなります。
それにしても50MBとは、あまりに大きすぎるような気がします。
300-400KBの画像を1400枚貼り付けたExcelファイルを作ったことがありますが、それでも49MB程度でした。
ご参考までに。
お礼コメント
JOX

お礼率 83% (141/169)

仕事上1年間のデータを蓄積する為に、大きな範囲(5000行)
にデータベース関数を貼り付け
ご丁寧にも異常な箇所が判明しやすいようにと条件付書式を
設定していますので、

こんな馬鹿でかいファイルになってしまいました

>計算を手動にしてリソース不足が発生しなければ、単にファイルが>大きすぎるだけ、という可能性が高くなります。

ありがとうございます。
この一文だけでホットしました。
単にファイルが大きすぎるだけでフリーズの可能性は低そうなので
安心しました。

今、ファイルのダイエットに奮闘しています。
それと、計算を手動にするのも忘れないようにっと。
投稿日時 - 2007-06-11 22:47:09
  • ありがとう数0
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル10

ベストアンサー率 59% (60/101)

リソース不足とは、また懐かしいエラーが発生しましたね。 Win9xはリソースが64KBしかないために頻発しましたが、NT系は1MB or 3MBあるので事実上不足することはないと聞いたことがあります。 しかし、Excelで50MBというサイズでグローバル変数を大量に定義していたら、リソース不足になるかもしれませんよ。 一時的にリソースを使いそうな部分をコメントアウトしてみて、どうなるか確かめるのがい ...続きを読む
リソース不足とは、また懐かしいエラーが発生しましたね。
Win9xはリソースが64KBしかないために頻発しましたが、NT系は1MB or 3MBあるので事実上不足することはないと聞いたことがあります。
しかし、Excelで50MBというサイズでグローバル変数を大量に定義していたら、リソース不足になるかもしれませんよ。
一時的にリソースを使いそうな部分をコメントアウトしてみて、どうなるか確かめるのがいいのではないでしょうか。
また、グローバル変数の使用は最小限にするといいかもしれません。
当方Access使いなので、Excelではあまり参考にならないかもしれませんが。
お礼コメント
JOX

お礼率 83% (141/169)

早速回答ありがとうございます
>一時的にリソースを使いそうな部分をコメントアウトしてみて、ど>うなるか確かめるのがいいのではないでしょうか。
>また、グローバル変数の使用は最小限にするといいかも
>しれません。

グローバル変数を最小限にするとは具体的にどのようにするのでしょう
よろしかったら教えてください

Access使い・・・・うらやましいです(^_^)
当方Accessに挑戦したのですが挫折組です。(T_T)
投稿日時 - 2007-06-10 21:16:22
  • ありがとう数0
  • 回答数2
  • 気になる数1
このQ&Aで解決しましたか?

関連するQ&A

-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


-PR-

ピックアップ

-PR-
ページ先頭へ