[[20070804000037]] 『Microsoft Excel for Windows 問題が発生で困って』(VBA勉強中) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Microsoft Excel for Windows 問題が発生で困っています』(VBA勉強中)

EXCEL2003 OS XP

VBAの初心者ですが、起動後にユーザーフォーム1からユーザーフォーム2に移行しデータを読み込もうとすると毎回Microsoft Excel for Windows 問題が発生・・・・・と確実に再現されます。

ただこの状態で、起動後に ユーザーフォーム1表示 閉じる 再度 同じユーザーフォーム1を開きそこからユーザーフォーム2に移行しデータを読み込むとなぜか確実に読み込めます。(同じ動作の途中に別の動作をはさんだりする場合。読み込めるようになる動作と変わらない動作には再現性あり)

シートを1枚増やしてデータを足したのに、ファイルサイズが小さくなったり、その逆にシートを削除したのにファイルサイズが大きくなったりもします。

ファイルサイズが小さく保存された場合は、起動後別の動作をはさまなくても問題は発生せずデータを読み込めます。大きく保存されるとその逆に問題が発生します。

 既出の質問で、ファイルサイズが変わるという現象と、メモリ不足での問題がそれぞれ起きているのでしょうか。

原因と対応策が分かれば教えてください。

なおファイルサイズは小さいとき700KB 大きいとき1MBくらいです。
フォームを7つとシートを15枚使用しています。


 以前に私が対応した現象と類似していますね。
[[20060413074437]] 『アプリケーションエラー』(banzai)
 
ファイルサイズが変わることについては、
一回目の起動>エラー発生・強制終了>(復元ファイルでの)Excel再起動
となっていて同じファイルでの作業になっていないのでは?という気もしますが。
 
新規ブックでそっくり作り直して現象が再現するようなら、コード上の問題かも
しれません。
(みやほりん)(-_∂)b


ご回答ありがとうございました。

ちなみにファイルは、復元ファイルではなく、同一ファイルでのことです。

ただ、ひとつのフォームにINPUTBOXを240個くらい貼り付けて(INPUTBOXにセルデータを読み込む)設定にしていますので、このあたりが問題なのか、コードが問題なのかのどちらかなのだろうということはわかりました。

いずれにしても、方向性としてはコードの再検証、駄目ならINPUTBOXを減らしてやってみます。

ありがとうございました。(VBA勉強中)


再質問で申し訳ありません。(VBA勉強中)

エクセルファイルを開いたまま、いったんマクロを無効にして、直後に有効にすることは可能でしょうか。(マクロが無効になった状態でマクロが動かなくてはならないため、個人的には不可能ではとは思ってはいるのですが、もしこれができたらトラブルが解決すると思いましたもので無理やり質問させていただきました。)

なぜこんな無意味なことをと思われるかもしれませんが、本日コードを再検証しようと思って、マクロを無効にした状態で立ち上げて、コードを再検証開始とおもった矢先、来客があったためいったん上書き保存。すると何もしていないのにファイルサイズが小さくなっていたのです。

 不思議に思い、いろいろデータを変換しながら、ファイル閉じる。マクロ無効で立ち上げ再保存をすると、ファイルサイズ7が一定(小さい)値になるのです。

 勝手な推測ですが、INPUTBOX(本当はテキストボックスの誤りでした)に入力したデータが、エクセルのどこかに保存されそのデータが容量をとってほかの動作を妨害しているのではと考えています。

 コードの書き方が悪いからだと思いますが、何か参考になることがあれば教えていただければと思います。

 


 ファイルサイズについては私には分りません。
オブジェクト変数や参照設定が関連しているのかもしれません。
ブックを閉じる時に完全にフォームが閉じていない(Unload)、とか、
オブジェクト変数の参照が解除されていない(Set 変数 = Nothing)、とか・・・
TEXTBOXが240個もある、というのも異常事態の原因かもしれません。
デザインモードボタンを押せば、プロジェクトは一旦リセットされるようですが。
【参考】
[[20041124212113]] 『VBA:変数の開放の必要性』(みやほりん)
(みやほりん)(-_∂)b

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.