抽出するには、AutoFilterを使用します。
Criteria1:="=*検索値*" として検索値を含む条件で行います。
AutoFilter メソッドの構文は下記になります。
expression.AutoFilter(Field, Criteria1, Operator, Criteria2)
Homeへ >
Excelでアプリケーションソフト2 >
顧客管理ソフトを作ってみよう
■Field: 必ず指定します。フィルタの対象となるフィールド番号を整数で指定します。フィールド番号は、リストの左側から始まります。つまり、最も左側にあるフィールドはフィールド番号 1 になります。
■Criteria1 省略可能です。抽出条件となる文字列または条件式を指定します。
特定の文字列が入力されているレコードを抽出する場合は、Criteria1="検索文字列" のように指定します。
"=" と指定すると,空白セルが抽出されます。
"<>" と指定すると空白以外のフィールドが抽出されます。
この引数を省略すると、抽出条件は All になります。
・トップテンの抽出
データの上位又は下位から指定件数のデータを抽出する場合は、Operatorで指定します。
xlTop10Items 、xlBottom10Itemsで指定した場合、上位または下位からの抽出件数を指定します。
xlTop10Percent 、xlBottom10Percentで指定した場合は、上位または下位からのデータ件数に対する抽出件数のパーセントを指定します。
・オートフィルタオプション
等しい: Criteria1:="=検索値"
等しくない: Criteria1:="<>検索値"
よりおおきい: Criteria1:=">検索値"
以上: Criteria1:=">=検索値"
より小さい: Criteria1:="<検索値"
以下: Criteria1:="<=検索値"
始まる: Criteria1:="=検索値*"
始まらない: Criteria1:="<>検索値*"
終わる: Criteria1:="=*検索値"
終わらない: Criteria1:="<>*検索値"
含む: Criteria1:="=*検索値*"
含まない: Criteria1:="<>*検索値*"
■Operator 省略可能です。抽出方法を指定します。
省略するとデータのすべてを表示します。
定 数 内 容 備 考
xlAnd: Criteria1 の条件と Criteria2 の条件を満たすデータを抽出
xlOr: Criteria1 の条件または Criteria2 のいずれかの条件を満たすデータを抽出
xlTop10Items: 値の上位からCriteria1 で指定した数のデータを抽出
xlBottom10Items: 値の下位からCriteria1 で指定した数のデータを抽出
xlTop10Percent: 値の上位からCriteria1 で指定したパーセントのデータを抽出
xlBottom10Percent: 値の下位からCriteria1 で指定したパーセントのデータを抽出
■Criteria2 省略可能です。2 番目の抽出条件となる文字列を指定します。
■VisibleDropDown 省略可能です。
True を指定すると、フィルタのフィールドのオートフィルタのドロップダウン矢印を表示します。False を指定すると、フィルタのフィールドにオートフィルタのドロップダウン矢印を非表示にします。既定値は True です。
シートのVBAコード
下記のVBAコードを追加してください。
Private Sub CommandButton3_Click()
Dim nfld As Integer
Dim sfind As String
If OptionButton1.Value Then
nfld = 1
ElseIf OptionButton2.Value Then
nfld = 2
ElseIf OptionButton3.Value Then
nfld = 3
ElseIf OptionButton4.Value Then
nfld = 4
ElseIf OptionButton5.Value Then
nfld = 5
ElseIf OptionButton6.Value Then
nfld = 6
ElseIf OptionButton7.Value Then
nfld = 7
ElseIf OptionButton8.Value Then
nfld = 8
ElseIf OptionButton9.Value Then
nfld = 9
ElseIf OptionButton10.Value Then
nfld = 10
End If
sfind = "=*" & TextBox1.Value & "*"
If sfind = "" Then
MsgBox "抽出文字を入力してください。"
Else
Range("A4:L10004").Select
Selection.AutoFilter
Selection.AutoFilter Field:=nfld, Criteria1:=sfind
Range("B5").Select
End If
End Sub
抽出画面
■抽出前
「抽出」ボタンをクリックすると、UserForm1が表示されます。
オプションボタンで「会社名」を選択し、「抽出文字」を「カラー」で実行してみます。
■抽出後
「抽出」ボタンをクリックすると、会社名に”カラー”が含まれる行を抽出しています。