1

ここ数日間WithEvents、VBA クラス モジュールで MSForms オブジェクトを使用すると、ユーザー フォーム全体の一連のコントロールに複数のイベント ハンドラーを割り当てることができる場合、VBA の継承の欠如を回避しようと試みてきました。私は主に_Enterand_Exitイベントの後にいます。これらは、私のコントロールがあるMSForms.Control(下位) ではなくにあります。MSForms.TextBoxしたがって、次の行に沿って、各 TextBox をクラス モジュールの tbTextBox 変数に追加します。

Private WithEvents tbTextBox as MSForms.TextBox

Private Sub tbTextBox_Exit()
 ' Do Something Here - doesn't work
End Sub

Private Sub tbTextBox_DblClick()
 ' Do Something Here - works
End Sub

DblClick は (MSForms.TextBox で) 正常に動作しますが、Exit (MSForms.Control で) では機能しません。

私は多かれ少なかれ、これらのイベントが (親レベルで) 発生することを知っているので、Win32 API を介してフォームのコントロールにフックし、手動でいずれかを監視したいと考えています。これらのイベントが発生したら、独自のイベントを発生させて、独自に機能を再実装します。

これまでのところ、私は Google から空白を引いていますが、正しい方向に向けることができるよりも高度な VBA コーダーがいると思いました。また、私は Excel 2003 を使用しているため、VB.Net はオプションではなく、環境は高度にサンドボックス化されているため、外部モジュールや .dll は使用できません。

4

0 に答える 0