【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

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

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

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

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

A 回答 (2件)

Barracudaです。


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

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

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

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

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

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

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

今、ファイルのダイエットに奮闘しています。
それと、計算を手動にするのも忘れないようにっと。

お礼日時:2007/06/11 22:47

リソース不足とは、また懐かしいエラーが発生しましたね。


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

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

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

Access使い・・・・うらやましいです(^_^)
当方Accessに挑戦したのですが挫折組です。(T_T)

お礼日時:2007/06/10 21:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報