• 締切済み

ユーザーフォームのテキストボックスでVLOOK

ユーザーフォームのテキストボックスで、ご教示お願いいたします。 現在、以下のようなコードこちらで教えていただきセルに入力をしております。 上から順番に入力した際、テキストボックス5に値を入たら、 listのシートから該当するもの(項目は20個)をテキストボックス6に表示させたいと思っております。 ■現在のコード '// Private Sub CommandButton1_Click() Dim LastRow As Long 'ここはキャメル形式やパスカル形式にします/大文字は定数です。 Dim i As Long '/テキストボックスに値があるか調べる For i = 1 To 7 Next i '/セルに書き込み With Worksheets("Sheet1") LastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 For i = 1 To 7 .Cells(LastRow, i).Value = Me.Controls("TextBox" & i).Value Next End With '/TextBox1-7をクリア If MsgBox("テキストボックスを空にしてよろしいですか?", vbQuestion + vbYesNo) = vbYes Then For i = 1 To 7 Me.Controls("TextBox" & i).Value = "" Next i End If 'TextBox1にフォーカスを移動 Me.TextBox1.SetFocus End Sub ■付け足したいコード Private Sub textbox5_change() Dim temp, x temp = Me.textBox5.Value If IsNumeric(temp) Then temp = Val(temp) x = Application.VLookUp(temp, Sheets("list").Range("a1:b20"), 2, False) If Not IsError(x) Then Me.TextBox6.Value = x Else MsgBox Me.TextBox5.Value & " はリストにありません" End If End Sub 【質問内容】 付け足したいコードは上記の通りですが、どのように付け足せばいいのかが分からず、 困っております。 度々で申し訳ありませんが、テキストボックス5の値を見て、 テキストボックス6に表示させるやり方をご教示お願いいたします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

>5にNo.を入れ、6にそのNo.に該当する内容を表示させて、 >コマンドボタンを押したときに全ての項目が入力されるようにしたかったのです。 >(5と6のテキストボックスに両方入力して、No.と内容が一致しないものを入力されてしまうのを避けたかったのです) 今回回答のtextbox5_AfterUpdateと、前回回答したcommandbutton1_clickを組み合わせて使えば、ご質問でいいたいことは基本的に実現しますが?どういうことでしょうか。 回答してもスルーの様子なので、回答する価値がありません。 もうちょっとチューニングした方が良い個所もありますが、回答要らなかったと判断します。頑張ってね~

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

> 【質問内容】 > 付け足したいコードは上記の通りですが、どのように付け足せばいいのかが分からず VBEを起動し、フォームのモジュールに書けば(付け足せば)OKです。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

今の付け足したいコードを消して、次のコードを付け足します。 Private Sub textbox5_AfterUpdate() Dim temp, x temp = Me.textBox5.Value If IsNumeric(temp) Then temp = Val(temp) x = Application.VLookUp(temp, Sheets("list").Range("a1:b20"), 2, False) If Not IsError(x) Then Me.TextBox6.Value = x Else MsgBox Me.TextBox5.Value & " はリストにありません" End If End Sub #現在のコマンドボタンのコードには、何の関係もない作業だと指摘しておきましたが、どういう事でしょうか?

orange1010
質問者

補足

ご教示ありがとうございます。 ユーザーフォームのテキストボックスに入力する際に、 5にNo.を入れ、6にそのNo.に該当する内容を表示させて、 コマンドボタンを押したときに全ての項目が入力されるようにしたかったのです。 (5と6のテキストボックスに両方入力して、No.と内容が一致しないものを入力されてしまうのを避けたかったのです) うまく説明が出来ずに申し訳ありません。

関連するQ&A