-PR-
JOX

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

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

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

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

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

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

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

    ご質問のリソース不足ですが、画像がない状態で50MBもあり、計算式が大量に記述されていれば、再計算時に相当リソースを消費しそうです。
    計算を手動にしてリソース不足が発生しなければ、単にファイルが大きすぎるだけ、という可能性が高くなります。
    それにしても50MBとは、あまりに大きすぎるような気がします。
    300-400KBの画像を1400枚貼り付けたExcelファイルを作ったことがありますが、それでも49MB程度でした。
    ご参考までに。
    お礼コメント
    仕事上1年間のデータを蓄積する為に、大きな範囲(5000行)
    にデータベース関数を貼り付け
    ご丁寧にも異常な箇所が判明しやすいようにと条件付書式を
    設定していますので、

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

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

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

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

    その他の回答 (全1件)

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

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

    Access使い・・・・うらやましいです(^_^)
    当方Accessに挑戦したのですが挫折組です。(T_T)
    投稿日時 - 2007-06-10 21:16:22
    • ありがとう数0
    • 回答数2
    • 気になる数1
    • ありがとう数2
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 知りたいこと、悩んでいることを
      投稿してみましょう
    このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

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

    別のキーワードで再検索する
    -PR-
    -PR-
    -PR-

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ