アプリ版:「スタンプのみでお礼する」機能のリリースについて

すいません、EXCEL VBAのユーザーフォームの呼び出し時の不具合について助けていただきたいことがあります。

エクセルでユーザーフォームを作成しているのですが、
Userform1.Showで呼び出したユーザーフォームがフリーズの状態になり、
フォーム内のすべてのオブジェクトが全く機能しなくなりました(右上の「×」にも反応しません)。
ユーザーフォームをクリックするとピープ音が鳴ります。
他のユーザーフォームは正常に作動するようです。

原因が全く思い当たりません。どなたか分かる方がおられましたらよろしくお願いいたします。

A 回答 (2件)

補足ありがとうございます。



いろいろなケースを試してみましたが、再現しませんでした。

1. 経験的に言えば、モードレス表示があやしいと思うのですが...
  幾つかのフォームを同時に表示させているようですが、一度全ての
  フォームをモーダル表示でやってみるとどうなりますか?

2. 参照設定で「参照不可」の項目はないですか?

> すべてのオブジェクトとコードを削除して
> 白紙のユーザーフォームを呼び出しても同じ症状が出ます。

3. Userform 自体がバイナリレベルで破損しているのかもしれません。
  そのフォームからコントロール等の削除ではなく、新規にフォーム
  を挿入し、コントロールのみ元フォームからコピペしてみるとどう
  なりますか?

> それ以外の方法では画面がフリーズしてエクセルのファイルを閉じる
> こともできません。

4. 同時に開いたフォーム側でコードが実行されている可能性は?

とりあえず思いつくままに。
    • good
    • 0
この回答へのお礼

ありがとうございます。
モーダル表示にしても同じ症状です。
参照不可の項目もどうもないようです。
とりあえず3の方法でやってみましたら
新しいフォームは正常に作動しましたのでこれで凌ごうと思います。
色々とありがとうございました。

お礼日時:2008/03/31 23:47

こんにちは。



なぜ問題となっているフォームのコードを提示しないのでしょうか?

・無限ループしているのでは?
 Ctrl+Pause キーで中断させることはできませんか?
・フォームの表示方法はモーダル?モードレス?
・VBA 標準以外のコントロールは使っていますか?
・API、特にサブクラス化とかしていますか?

などなど、いろんな原因は想像できますけど、最初からコードの
提示がないとお互いに意味のほとんどないやり取りが必要になって
しまいます。
    • good
    • 0
この回答へのお礼

そうですね。もう少し詳しく症状がないとだめですね。失礼しました。

表示方法はvbModelessで呼び出しています。
VBA以外のコントロールは使っていません。
フォーム内にテキストボックスやオプションボタンが合計で20個くらいありますが、
ループになるようなコードは作ってありません。
というか色や配置を決め終わった段階ですので、ほとんどコードはありません。
Private Sub UserForm_Initialize()
UserForm1.ComboBox1.IMEMode = fmIMEModeOff
UserForm1.TextBox1.IMEMode = fmIMEModeOff
UserForm3.ComboBox1.AddItem Date
End Sub
だけです。

Ctrl+Pause キーでフォームは消えますが、
それ以外の方法では画面がフリーズしてエクセルのファイルを閉じることもできません。
すべてのオブジェクトとコードを削除して
白紙のユーザーフォームを呼び出しても同じ症状が出ます。

お礼日時:2008/03/30 17:10

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A