• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ユーザーフォームでエクセル2007が強制終了する)

ユーザーフォームでエクセル2007が強制終了する

このQ&Aのポイント
  • VBEを開いてユーザーフォームを実行すると、エクセル2007が強制終了します。
  • 全角で文字を入力しようとすると、ユーザーフォームを終了しようとするときにエクセルが強制終了します。
  • この問題は、OSがXP sp3でメモリが2G、CPUがcore2duo E8400、グラボがGeForce GT 220の環境でエクセル2007を使用している場合に発生します。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

『なぜ』起こるのかは到底わかりませんが、 その現象は確かに発生するようです。 winXPの2000,2003,2007,2010のバージョンで発生しました。 97は発生しませんでしたが。 MSsupportにも載ってないようなのであまり知られてないバグなのかもしれませんね。 IMEが関係してるとなると日本語環境のみの発生なのでバグ報告の頻度も少ないのかも。 対策としては 1.UserFormはデフォルトプロパティとしてモードレスで作成するようにし、 通常運用でモーダル利用する時には呼び出し側で引数modalを必ず書く。 (モードレスの場合は発生しないみたいなので) 2.編集時に全角入力しようとしてフォームを開いている事に気づいたら取り敢えずenter押すくせをつける... ..とか対策にならないような消極的な自己防衛策しか思いつけません.. 『なぜ』、を追求したい場合は、これはもうmicrosoftに問い合わせるしかないと思われます。 #ただ、強制終了に対する備えが必要なのは、何もこの件に限った事ではないでしょうから、 #バックアップや自動保存などの対策は必須でしょうね。 #私などが言うまでもなく、充分に備えられてるとは思いますが。

iori16
質問者

お礼

対策まで教えてくださってありがとうございます。 今回は、どうなったら起こるか解明できたので、次回からは気を付けるようにします。 たまに、正体不明の強制終了が起こることがあるので、困っていますがw

その他の回答 (2)

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.3

再現方法はわかりました。 質問者様が異常だと言っているのではなく プログラムを書く上でそのような操作をすることが異常だと言うことです。 VBAは誰がどんな操作をしても、また、データ型がいいかげんでも自動で変換してくれたり、変数宣言をしなくても動かす方法があったりと至れりつくセリの言語になっていて滅多なことでは大きな問題が起きないくらいになっています。今回、そうではない事柄を見つけたので気になるのでしょうが、プログラム実行中にプログラムを書きかえようという操作をするなんてことは、うっかりで済むようなことではないと考えたほうがいいというのが私の考えです。たとえばハードウェアにかかわるようなものを書いていたりすれば、最悪はPCや外部のハードウェアの人為的なミスによる破壊にもつながりかねません。 なお、2010版では、そのような重大な問題が起きても、自動回復機能が働いてくれるようになっています。

iori16
質問者

お礼

異常という言葉に過敏に反応してしまいました。申し訳ありません。 やはり、普通はそんなミスはしないんですね。 今後気を付けるようにします。

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

>>この強制終了は、いったいなぜ起こるのでしょうか?<< XP_sp3,Excel2007でやってみました。なぜかはわかりませんが、当方では入力そのものができません。というわけで強制終了もおこりません。 プログラム実行中にコード入力しようということ自体が異常な考えだと思うのですが・・・・。

iori16
質問者

補足

いや、私も入力はできません。ただ、全角で入力しようとすると何も音がならず、 その直後に■で終了させようとすると強制終了するという話です。 >>プログラム実行中にコード入力しようということ自体が異常な考えだと思うのですが・・・・。 デバッグしようとしているときに、ユーザーフォームを開いていることを忘れて、コードを書き直そうとすることありませんか? そういう時に強制バグが起こると困るので、聞いているんですが・・・ 私は異常ですか・・・ ちなみに別のパソコンでエクセル2000でも試してみました。 きちんと再現しました。