0

Outlook VBAマクロで単純なユーザーフォームを作成しました-次のコードを使用してフォームを表示できます:

VBA.UserForms.Add(PasswordForm.Name)
PasswordForm.Show(モーダル)

...そしてUserForm_Initialize()イベントは実際に発火します。ただし、フォームの[送信]ボタンをクリックしても何も起こりません。SubmitButton_Click()イベント(デザイナーのボタンをダブルクリックして自動作成されたもの)は発生しません。また、ユーザーフォームのウィンドウの右上隅に通常の小さな赤いXが表示されますが、これをクリックしても何も起こりません(フォームが閉じたり終了したりすることはありません)。

私が間違っているかもしれない何か考えはありますか?私はVBAにまったく慣れていません。

4

3 に答える 3

1

VBAのコントロールがイベントから切り離されることがあります。コントロールの名前を変更したか、誤ってイベントプロシージャの名前を変更したことが原因である可能性があります(ただし、他の理由で発生することはめったにありません)。また、フォームを実行する前に「コンパイル」するのを忘れた場合は、問題の原因となっているフォームでエラーが発生する可能性があります。

再確認する最も簡単な方法は、デザインビューでフォームを開き、問題のボタンを選択してF7キーを押すことです。新しいプロシージャが作成された場合は、コードをコピーして貼り付けてから、古いコードをコピーして貼り付け、古いコードを削除します。

それが終わったら、「デバッグ」メニューに移動し、「コンパイル」をクリックします。エラーが検出された場合は、もう一度「コンパイル」をクリックして修正してください。不満なくコンパイルされるまで繰り返します。次に、フォームをもう一度実行してみてください。

于 2009-05-20T19:25:07.720 に答える
0

OK、解決しました:変更しました:

PasswordForm.Show (Modal)

PasswordForm.Show

フォームがモーダルではなくなるという事実に対応するために、動作方法を少し変更する必要があります(とにかく、モーダルの方が優れたソリューションだと思いますが、モーダルはユーザーに迷惑をかける可能性があります。彼らが今フォームなどを提出したことを確認する必要があります)。

ご提案ありがとうございます。

于 2009-05-21T00:58:51.713 に答える
0

Office 03/07で、モーダルを表示するようにしたい場合は、フォームの.ShowModal動作を「True」に設定します。ショーイベント中にフォームをモーダルにしようとすると問題が発生しました。

于 2009-05-21T16:04:10.040 に答える