メインコンテンツへスキップ

Excelのユーザーフォームでのコンボボックスの選択に基づいてテキストボックスにデータを入力するにはどうすればよいですか?

以下のスクリーンショットに示すように、テーブルに名前とスタッフ番号の列が含まれているとします。 次に、内部のすべての名前を収集するコンボボックスと、コンボボックスから名前を選択するときに対応するスタッフ番号を入力するテキストボックスが埋め込まれたユーザーフォームを作成する必要があります。 この記事の方法は、それを理解するのに役立ちます。

VBAを使用したユーザーフォームでのコンボボックスの選択に基づいてテキストボックスにデータを入力します


VBAを使用したユーザーフォームでのコンボボックスの選択に基づいてテキストボックスにデータを入力します

ユーザーフォームでのコンボボックスの選択に基づいて、対応する値をテキストボックスに入力するには、次の手順を実行してください。

1。 プレス 他の + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2。 の中に アプリケーション向け Microsoft Visual Basic ウィンドウ、クリック インセット > ユーザーフォーム。 スクリーンショットを参照してください:

3.次に、以下のスクリーンショットに示すように、作成したユーザーフォームにコンボボックスコントロールとテキストボックスコントロールを挿入します。

4.ユーザーフォームの空白部分を右クリックして、[ コードを表示 コンテキストメニューから。 スクリーンショットを参照してください:

5.開いているユーザーフォーム(コード)ウィンドウで、以下のVBAコードをコピーして貼り付け、元のコードを置き換えてください。

VBAコード:ユーザーフォームでのコンボボックスの選択に基づいてテキストボックスにデータを入力します

Dim xRg As Range
'Updated by Extendoffice 2018/1/30
Private Sub UserForm_Initialize()
    Set xRg = Worksheets("Sheet5").Range("A2:B8")
    Me.ComboBox1.List = xRg.Columns(1).Value
End Sub
Private Sub ComboBox1_Change()
    Me.TextBox1.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 2, False)
End Sub

Note: コード内の A2:B2 は、ユーザーフォーム コンボ ボックスとテキスト ボックスの両方に個別に入力する値が含まれる範囲です。 Sheet5 は、データ範囲を含むワークシートの名前です。 必要に応じて変更してください。

6。 プレス 他の + Q 終了するためのキー アプリケーション向け Microsoft Visual Basic 窓。

7。 クリック Developer > インセット > コマンドボタン(ActiveXコントロール) ワークシートにコマンドボタンを挿入します。

8. シート タブを右クリックし、 コードを表示 右クリックメニューから。 次に、VBA コードをコピーしてコード ウィンドウに貼り付けます。

VBA コード: ユーザーフォームを表示

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2018/1/30
    UserForm1.Show
End Sub

9. ワークブックのデザイン モードをオフにします。

コマンドボタンをクリックして、指定したユーザーフォームを開きます。 すべての名前がコンボ ボックスに収集されていることがわかります。 コンボボックスから名前を選択すると、以下のスクリーンショットに示すように、対応する五線番号がテキストボックスに自動的に入力されます。


関連記事:

最高のオフィス生産性向上ツール

人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト 工具 (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 工具 (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 工具 (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット 工具 (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

kteタブ201905


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (11)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
can the same be don on excel sheet? instead of userform? i am using sheet not userform
This comment was minimized by the moderator on the site
alguem poderia me ajudar estou tentando carregar a combobox e puxar informações para text box so que esta dando erro 381

Private Sub ComboNome_Emissor_Change()
TextArea.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 1)
TextTreinamento_PT.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 3)
TextTreinamento_EC.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 5)
TexStatus_Bloqueio.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 6)


End Sub
This comment was minimized by the moderator on the site
The method is very simple and populates the combo box quite efficiently. However, when I try populating the text box, I get a run-time error '1004': Unable to get the VLookup property of the WorksheetFunction class. Kindly assist with resolving this error.
This comment was minimized by the moderator on the site
I just tried this code and was running into the same issue. I realized I had the xRg variable inside the UserForm block, so it was not being accessed by my ComboBox function. Maybe others are running into the same issue
This comment was minimized by the moderator on the site
Hi,
May I have your Office version? I need the feedback to check for the error.
Thanks for your comment.
This comment was minimized by the moderator on the site
office 2010 32 bit
This comment was minimized by the moderator on the site
Good day,
I have tried the code in Office 2010 32 bit, but no errors occured.
Please make sure the sheet name and cell range in the first VBA code are the same with your actual sheet name and range.
Thanks for your comment.
This comment was minimized by the moderator on the site
Hi,
i have same issue with office 2013. Any solution please
This comment was minimized by the moderator on the site
i have the same problem....
This comment was minimized by the moderator on the site
I too have the same problem
This comment was minimized by the moderator on the site
Hi Chaylon,
Have you replaced the sheet name in the below code line with your actual used worksheet name?
Set xRg = Worksheets("Sheet5").Range("A2:B8")
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations