北の窓から(芦田っち)

PC関連と私的雑感のブログ。
2015年7月10日、カッコ内に名前を加えました。昔の友だちに気付いてほしくて・・・

Excel:メモリ不足です。完全に表示できません。(1)

2013-07-25 17:46:08 | 北窓舎
Excel 2010 でマクロを作成していたら、
「メモリ不足です。完全に表示できません。」とのメッセージが表示されるようになりました。

さらに悪いことに、シート(セル)操作をすると Excel がいきなり何も言わずに終了するようになりました。
自動保存されていないソースコードは消失。せっかくの努力も雲散霧消。

昨日 Office 2010 の SP2 を適用したばかりなので、それが悪さをしているのかと思い、
Office 2010 SP2 をアンインストールしました。

が、PCを再起動しても、
メモリ不足のメッセージは相変わらず現れ、Excel 突然の終了も頻発してしまいます。 (x_x)!!

他人(SP2)のせいではなく自分(Excel VBA)に問題があるのだろうと素直に反省して、
ソースを読み直してみました。

あっ、やはり自分のせいでした。

あるセルの値が変化したら、隣のセルを自動的に変更するような VBA を書いていました。
より具体的にいうと、
施設の名前が選択されたら、その右隣りのセルに施設コードをセットする・・・
そんな VBA です。

画面のイメージは次のとおり。
  

で、何が問題だったか。

VBA では、施設が選択されたら(「Worksheet_Change」のイベントが発生したら)
隣のセルに施設コード(画像では code)をセットするようにしています。

VBA で施設コードがセットされたら
(当たり前ですが)「Worksheet_Change」のイベントが発生します。

そのイベントによって、また「Worksheet_Change」のイベントが発生する・・・
これが「メモリ不足」の原因でした。

なので、イベントを検知しないようにしました。
Application.EnableEvents = False
(施設コードをセットした後では、イベントを検知するように戻しています。)

下がそのソース(画像)です。
  

何とも哀しい未熟者ですが、こんな経験を重ねていくうちに少しは進歩するでしょう・・・

【2014-12-21 追記】
  Excel で「メモリ不足です。完全に表示できません」と表示される原因は、
  上述のようにプログラムミスもありますが、それ以外にもあるようです。

  別記事で、マイクロソフトの情報を追記しました
  そちらもご参照ください。


ブログ記事についてのお問い合わせは「質疑応答 掲示板」で・・・



ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« VirtualBox:ストレージサイ... | トップ | お使い下さい:マクロ付き Ex... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

北窓舎」カテゴリの最新記事