プログラミング経験はありますが、VBA初心者です。私が取り組んでいるユーザーフォームがあります。このフォームには、リストが初期化されたコンボ ボックスがあります。私がやろうとしていることは次のとおりです。
* ComboBox からユーザーが入力した ID 番号の値を取得します * ユーザーが入力した値を取得し、ワークシートの値の範囲を使用してその一致を見つけます (つまり、Worksheet.Range("ID_Number_List")) * 一致を取得したら、一致します一致するセルの位置を取得 * セルの位置を 1 列分オフセットして、ID 番号 (同じ行) に関連する名前を取得し、それを textBoxName.Value に設定 * 2 列分オフセットして取得ID 番号に関連する電話番号を textboxTele.value に設定します。
コンボボックスから値が選択されるとすぐにこれが発生するようにしたいので、私の質問は私のコードがコンボボックスに入るのですか、それとも次のテキストボックスに行くのですか? 人がタブで次のテキスト ボックスに移動するとすぐに、コードが自動的に実行されます。次のボックスに移動することなく、コードを完全に実行したいと考えています。
このコードは完全ではありませんが、ここに私が持っているものがあります(テスト実行を行ったばかりのオフセット部分を追加しませんでした):
Dim ORIValue As String
'get value from combo_box Set
ORIValue = COMBO_ORILIST.Value
Dim cLoc As Range
Dim cORIVal As Range
'worksheet with the ID information Dim ORISheetList As Worksheet
Set ORISheetList = Worksheets("ORI_LIST")
'
For Each cLoc In ORISheetList.Range("ORI_LIST")
'compare the input string from list- considering using Match function for this
If StrComp(cLoc, ORIValue, vbTextCompare) Then TextBAgencyName.Value = "test"
Else: Next cLoc
End If
どう考えているか教えてください。すべてを書き直す必要がある場合は、そうします。