15. 検索ボタンを押せば、[指定製番フォーム]が表示されて
  条件入力が可能になる。
  入力後に、[抽出ボタン]をクリックすると条件に合致する
  データが抽出される。
  又、入力文字はデータを判別できる文字列だけでよい。
  構文に記入したアスタリスクが効果を発揮してくれる。
14. ボタンに[マクロの登録]で[検索]を選択して
  [OK]をクリックする。
フィルター.Show vbModeless       ' 入力フォームの名前がフィルターなので、フィルターと言う
                     ' フォームを表示する。
                     ' vbModelessはマウスのカーソルで画面上を移動が可能になる。
                    
13. 新規モジュールを作成する。
12. [挿入]-[図形]-[四角形]をクリックして、適当な場所に
  作成して、出来た図形を選択して、塗りつぶしで色を
  付ける。
  検索文字を入力すると、図形が完成する。
11. 検索条件の入力ボタンの作成
strSeib=TextBox1.Text   ' フォームのTextBox1に入力した文字列を製番に代入する。
strHin=TextBox2.Text    ' フォームのTextBox2に入力した文字列を品名に代入する。
strKei=TextBox3.Text     ' フォームのTextBox3に入力した文字列を形状に代入する。

ActiveSheet.Range("B14:K & intRow).AutoFilter field:=1, Criterial:=strSeib
ActiveSheet.Range("B14:K & intRow).AutoFilter field:=4, Criterial:="=*"& strHin & "*"
ActiveSheet.Range("B14:K & intRow).AutoFilter field:=5, Criterial:="=*" & strKei & "*"
    ' Criterisl="=*" & strHin & "*" は *アイドラ*のことで、strHinの前後にアスタリスクを使用している。
    ' アスタリスクを入力文字の前後に使用すると、品名の文字列を完全に入力しなくても、入力文字だけで
    ' 判別できれば、品名が抽出される。
    ' 面倒な完全入力しなくても良いが、判別できるだけの文字列の入力は必要である。

Unload フィルター     ' ユーザーフォームを非表示にする。


    
● 前回の構文をコピーして、変更した完成構文である。
TextBox1.Text=""       ' TextBox1のテキストを空白にする。

Private Sub UserForm_Click( )は不要なので削除しても良い。
10. Initializeはフォームを開いた
  時に自動実行する構文である。
  テキストボックスに仮入力した
  文字や、実行時に入力した条件
  文字などを消去する。
9. 右上の▼を押すとInitializeが
  あるので、クリックすると
  Privete Subが作成される。
8. 上の▼を押すとUserFormがある
  のでクリックすると、
  Pravete Subが作成される。
7. [抽出]コマンドボタンをクリック
  すると、コードが作成される。
  その中に、前回の構文をコピー
  する。
6. コマンドボタンはオブジェクト名
  に表示される。変更しても良い。
  色はBackColor、文字はCaption
  文字色はForeColorで変更できる。
5. TextBoxの入力文字は、ここで
  入力する必要はないが、実際に
  入力される文字を仮入力して、
  色やサイズを調整しておく。
  ForeColorで色を、Fontで文字
  種やサイズを設定しておく。
4. 名前をTextBox1 に変更する。
3. [プロパティウインドウ]を
  開いて、[オブジェクト名]を
  フィルターに[Caption]を
  指定抽出に変更する。
●完成した状態です。
 各部の設定を説明して行きます。
2. [コントロール]の[テキストボックス]を
  クリックして、フォームの範囲で選択
  すると、テキストボックスが作成され
  ます。
  完成形を参考に作成してください。
 
VBAで入力フォームの作成

1. [挿入]-[ユーザーフォーム]を順にクリックすると、
  新規のフォームが作成される。

 その時にツールボックスが表示されます。
 表示されなかったら、[表示]のツールボックスを
 クリックして、コントロールを表示してください。
●入力した条件で抽出する、可変検索フィルター
Worksheets("Sheet2").Range(""B5:K50").ClearContents  ' 転記場所を空白にして置く。
Sheeta("Sheet1").Select
intRow=Range("B4").End(xlDown).Row          ' フィルターするデータの行端を調べる。

Range("B4:K" & intRow).Select              ' フィルター範囲を選択
Selection.AutoFilter                    ' 選択範囲をフィルター
strSeib="QD-6772"                    ' フィルター条件の製番
strHin="スプロケット"                   ' フィルター条件の品名
strKei="FBN40B14D25"                  ' フィルター条件の形状と寸法

ActiveSheet.Range("B4:K" & intRow).Autofilter field:=1, Criterial:=strSeib
ActiveSheet.Range("B4:K" & intRow).Autofilter field:=4, Criterial:=strHin
ActiveSheet.Range("B4:K" & intRow).Autofilter field:=5, Criterial:=strKei
    ' フィルター範囲のフィールド1番目を strSeib でフィルターする。(B列)
    ' 次にフィールド4番目を strHin でフィルターする。(E列)
    ' 次にフィールド5番目を strKei でフィルターする。(F列)

Selection.Copy                      ' フィルター結果をコピーする。
Sheet("Sheet2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,SkipBlanks:=False,Transpose:=False
    ' フィルター結果を貼り付ける。

Sheets("Sheet1").Select                  ' フィルター状態はSheet1なので、Sheet1で
ActiveSheet.AutoFilterMode=False             ' フィルターを解除する必要がある。
Application.CutCopyMode=False              ' コピーをした後は、必ずこの解除が必要です。
Range("A1").Select
End Sub
フィルター結果を別のシートに転記した。
製番=QD-6772, 品名=スプロケット, 形状・寸法=FBN40B14D25のデータが知りたい場合、
色々な方法があるが、フィルター検索もその一つである。
●フィルター条件を、可変ではなく固定した場合を見てみましょう。


フィルターを実行した結果が表示された。
 
基本的なマクロの習得
複数条件フィルター抽出


実際に使っているシステムの内容で解説
  EXCEL VBA 講座