作成画面
■コード・品番・品名抽出フォームの変更
前回テキストボックスのラベルを「キーワード1~3」にしていましたが、そうすると複雑すぎるので、それぞれの項目から1つのキーワードで抽出できるようにしました。
ラベルの「キーワード1~3」を「コード」「品番」「品名」に変更してください。
■フォームを閉じるボタンのVBAコード
Private Sub CommandButton2_Click()
Unload UserForm2
End Sub
■入力されたテキストボックスのデータを保存しておく
Private Sub UserForm_Terminate()
Worksheets("一覧").Range("G1") = Me.TextBox1
Worksheets("一覧").Range("H1") = Me.TextBox2
Worksheets("一覧").Range("I1") = Me.TextBox3
End Sub
■保存していたデータをフォームが開く時に再表示する
Private Sub UserForm_Initialize()
Me.TextBox1 = Worksheets("一覧").Range("G1")
Me.TextBox2 = Worksheets("一覧").Range("H1")
Me.TextBox3 = Worksheets("一覧").Range("I1")
End Sub
セルG1・H1・I1に保存するようにしましたので、分からないようにこのセルの文字色を白に設定してください。
■AutoFilterを使って複数条件で抽出するVBAコード
Private Sub CommandButton1_Click()
Worksheets("一覧").Range("$B$4:$J$4").AutoFilter Field:=3, Criteria1:="*" & Me.TextBox1 & "*"
Worksheets("一覧").Range("$B$4:$J$4").AutoFilter Field:=4, Criteria1:="*" & Me.TextBox2 & "*"
Worksheets("一覧").Range("$B$4:$J$4").AutoFilter Field:=5, Criteria1:="*" & Me.TextBox3 & "*"
End Sub
■複数条件で抽出を実行する
下の請求書一覧の矢印データは、抽出テスト用に分かり易いデータに変更しています。
コード・品番・品名それぞれのキーワードで抽出します。
条件に合ったデータがワイルドカードで無事抽出できました。
コード・品名にはキーワードを指定し、品番は空白で抽出します。
品番を除いた条件で無事抽出できました。
[関連リンク]
データを抽出する(AutoFilter)
2つの条件でデータを抽出する(AutoFilter)
オートフィルタの実行と解除
ユーザーフォームを開く、閉じる