アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelユーザーフォームにテキストボックス4つとコマンドドボタン1つを作成して、TextBox1に検索項目を入力しボタンを押すとA列を検索してB列、C列、D列の検索結果をTextbox2(B列)、textbox3(C列)、textbox4(D列)に表示する。
A列に同じ項目があったら、ボタンを押すと次の検索結果をTextboxに表示するマクロを教えてください。

A 回答 (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
MsgBoxは私の苦難のあとですが、要らないでしょうから、確認後には抹消して結構です。
あと
(1)イベント間の変数の受け渡し
(2)細部にわたる体裁を好みにあわす
がありますが、(1)で、ベターなやり方がよくわかっていません。
念のため上げておきます。私のストデータ(特に重複出現)はA-D列
Bs1x
Ad2y
Cd3u
Gd4j
Vf5h
Bg6z
Kh7s
Axx32ff
Cqq23yu
Ayy2ss
のようなのを使い、A列データをTextBox4に「A]を入れて、テスト検索して確認してみました。
    • good
    • 0
この回答へのお礼

有難うございました。
完璧です。
早速、使わせていただきます。
私が思っていたとうりに出来ていました。

お礼日時:2006/04/15 22:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A