ユーザーがリストボックス内の項目をダブルクリックして、直近のテキストボックスに貼り付ける方法を見つけようとしています。だから、リストボックスからエントリを最近のテキストボックスに追加するVBAユーザーフォームをダブルクリックする
With ListBox1
.AddItem "<PARENT> Customer's PARENT Company "
.AddItem "<SALESEXEC> The sales executive responsible for the account"
.AddItem "<FIRSTNAME> Customer's First Name"
End With
のようなリストボックスで、私は、テキストボックスにこれらの値を過去のことができるようにしたいのですが、フォームに複数のテキストボックスを持っているので、私はそれは、彼らが集中している最後の1になりたいです。私は次のようなことをすることを考えていた。問題は私がGotFocus
何かをするイベントを得ることができないということです。 Enter
イベントでは機能しますが、それは一度しか動作しません。
Public hasFoc As String
Private Sub TextBox4_GotFocus()
Debug.Print ("TextBox4 Clicked")
hasFoc = "TextBox4"
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'Get index of clicked element, and paste the "<>"
'value into the most recently used textbox
End Sub
編集:私はVBAで前にクラスを扱っていませんが、私のクラスモジュールは、次のようになります。
Option Explicit
Public WithEvents txtBox As MSForms.TextBox
'/ To Mimic Enter event .
Private Sub txtBox_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'/ Assign to global variable
Set g_ActiveTextBox = txtBox
End Sub
'/ To Mimic Enter event .
Private Sub txtBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'/ Assign to global variable
Set g_ActiveTextBox = txtBox
End Sub
私は本当に答えが、唯一の問題は、私はEventH'として暗いoEventH 'は、「ユーザー定義型が定義されていません」というエラーを取得することです感謝しています。なぜこれが起こるか知っていますか? – RWA4ARC
イベントハンドラクラスの名前を 'EventH'の名前に変更する必要があります。 – cyboashu
これは可能かもしれないと思っていましたが、以前はVBAでクラスを処理していませんでした。私はクラスに含める必要がある初期化関数はありますか?または、名前を変更する簡単な方法はありますか? – RWA4ARC