• 締切済み

Excelでセルの検索結果をテキストボックスに表示

先日、この内容の回答が来たのですが、いろいろテストしていたら、検索ボックスに入力して1回目は検索できるのですが、続けて次の検索をしようテキストボックスに入力してボタンを押しても以前の内容で検索されてしまいます。 どこを修正すれば良いのか教えてください。 UserForm1に、検索条件を入れるTextBox4、 該当した行のB,C,D列表示用の、TextBox1、TextBox2,TextBox3の3つ(計4つ)を設けます。 コマンドボタンを1つ(Captionは「検索・次検索」)設けます。検索・次検索ボタンです。 標準モジュールに Public ac As Range Public startaddr As String 変数の次ステップ(イベント)への受け渡し用です。 UserForm1のコマンドボタンのクリック・イベント・プロに Private Sub CommandButton1_Click() Dim r As Range If ac Is Nothing Then d = Range("A65536").End(xlUp).Row With ActiveSheet.Range(Cells(1, "A"), Cells(d, "A")) Set r = .Find(what:=TextBox4) rr = r.Row TextBox1.Text = Cells(rr, "B") TextBox2.Text = Cells(rr, "C") TextBox3.Text = Cells(rr, "D") Set ac = r r.Activate MsgBox ac.Address startaddr = ac.Address Exit Sub End With Else MsgBox ac.Address d = Range("A65536").End(xlUp).Row MsgBox d With ActiveSheet.Range(Cells(1, "A"), Cells(d, "A")) Set r = .FindNext(ac) rr = r.Row TextBox1.Text = Cells(rr, "B") TextBox2.Text = Cells(rr, "C") TextBox3.Text = Cells(rr, "D") Set ac = r r.Activate If r.Address = startaddr Then TextBox1.Text = "終わり" Exit Sub End With End If End Sub

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

これを入れるとか、、、 Private Sub TextBox4_AfterUpdate()   Set ac = Nothing   StartAddr = "" End Sub あと気になるところは、見つからない事を想定していない所とFind の LookAt (完全一致 or 部分一致)を指定していない所です。 私なりに修正してみました。 TextBox4_AfterUpdate はこちらでも必要です。 Private Sub CommandButton1_Click() Dim r  If ac Is Nothing Then    Set r = ActiveSheet.Columns(1).Find(what:=TextBox4.Text, LookAt:=xlWhole)  Else    Set r = ActiveSheet.Columns(1).FindNext(ac)  End If  If Not r Is Nothing Then    For i = 1 To 3      Me.Controls("TextBox" & i).Text = r.Offset(0, i)    Next i    r.Activate: Set ac = r    If r.Address = StartAddr Then      MsgBox "最初のセルです", vbOKOnly + vbInformation, "検索終了"    End If    If StartAddr = "" Then StartAddr = r.Address  End If End Sub

j3j355
質問者

補足

有難うございました。 完璧です。 実はもうひとつ書くのを忘れてしまったのですが、セルの色もテキストボックスに表示できないかなと思っていますが、如何でしょうか? 行によって色が付いているので、その色も表示できないでしょうか? こんなことって出来るのでしょうか? 教えてください。

関連するQ&A