• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ユーザフォーム上のVLookUp関数について教えていただきたいのですが。)

ユーザフォーム上のVLookUp関数について教えていただきたい

このQ&Aのポイント
  • UserForm1にTextBox1とTexrBox2があり、TextBox1に顧客コードを入力すると、勝手にTextBox2に顧客名が入るということがしたいです。
  • 引っ張ってくるデータは実際UserForm1を実行するbook1のアクティブシートではなく、別のbook2.sheets("顧客リスト")から反映させたいです。
  • TextBoxでなく、Labelでないと不可能なのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> Private Sub TextBox2_Change()のところにいれればいいのでしょうか。 TextBox2_Change() ではなく TextBox1_Change() です。 ただ、この場合TextBox1で文字が追加・削除されるたびにVLookupが呼び出されることになります。パフォーマンス的に微妙なところですが、もし動作が遅くなるようでしたら TextBox1_Exit(...) で処理するか、検索ボタンでも設ければよいかと。

milktea06
質問者

お礼

ありがとうございます。うまくいきました。パフォーマンスに関して、助言いただいた通り試してみます。迅速に、かつ丁寧にご対応いただき本当にありがとうございます。

その他の回答 (1)

回答No.1

セルに入力する関数は Application.WorksheetFunction にまとめられています。 VLookupならこんな感じです。 TextBox2.Value = Application.WorksheetFunction.VLookup(検索値, 検索範囲, 列番号, 計算方法)

milktea06
質問者

補足

迅速な回答ありがとうございます。上の文は Private Sub TextBox2_Change()のところにいれればいいのでしょうか。 一度入れてみたのですが、実行してみてもTextBox2は空白のままなんです。何が問題なんでしょうか。下記がその文になります。 TextBox2.Value = Application.WorksheetFunction.VLookup(TextBox1.Value, Windows("顧客情報.xlsx").Worksheets("顧客リスト").Range("A:B"), 2, False)

関連するQ&A