• 締切済み

エクセル ユーザーフォームでVLOOK

ユーザーフォームのテキストボックスで、ご教示お願いいたします。 現在、以下のようなコードこちらで教えていただきセルに入力をしております。 テキストボックス5に値を入れ、 listのシートから該当する文字をテキストボックス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.1

>テキストボックス5に値を入れ、listのシートから該当する文字をテキストボックス6に表示させたい それを「いつ」(どのタイミングで)やりたいのですか? 前回のマクロに組み込むってことは、コマンドボタンを押したときにという意味ですが? 前回マクロの動作:  コマンドボタンを押す  ↓  テキストボックス1~7が所定のセルに書きこまれる  ↓  テキストボックス1~7をクリアする  ↓  テキストボックス1に戻る >どのように付け足せばいいのかが分からず、困っております。 この流れの中の一体どこに「テキストボックス5に記入したときにテキストボックス6に反映する」を組み込みたいのか、全然ヤリタイ事が見えません。て言うかぶっちゃけ、付け足しようがありません。 敢えて言えば、こんなカンジですかね。 まずtextbox5_changeイベントは消去する private sub CommandButton1_Click()  dim i, r, t6  t6 = application.vlookup(val(textbox5), worksheets("list").range("A1:B20"),2, false)  if iserror(t6) then   msgbox textbox5.value & " is not found in list"   exit sub  end if  textbox6 = t6  r = worksheets("シート名").range("A65536").end(xlup).row + 1  for i = 1 to 7   worksheets("シート名").cells(r, i) = me.controls("Textbox" & i)   me.controls("Textbox" & i) = ""  next i end sub

orange1010
質問者

お礼

ご教示ありがとうございます。 画像を貼って改めてお伺いした方がいいと判断しましたので、 この質問は一度締めさせていただきたいと思います。 勝手ですが、もしお時間がありましたら そちらでご教示いただければと思います。 よろしくお願いいたします。

関連するQ&A