- 締切済み
エクセル ユーザーフォームで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に表示させるやり方をご教示お願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>テキストボックス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
お礼
ご教示ありがとうございます。 画像を貼って改めてお伺いした方がいいと判断しましたので、 この質問は一度締めさせていただきたいと思います。 勝手ですが、もしお時間がありましたら そちらでご教示いただければと思います。 よろしくお願いいたします。