Excelで表を使った顧客管理ソフトを作ってみよう

Step 7 抽出の実行

抽出するには、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が表示されます。
オプションボタンで「会社名」を選択し、「抽出文字」を「カラー」で実行してみます。
顧客管理 抽出

■抽出後
「抽出」ボタンをクリックすると、会社名に”カラー”が含まれる行を抽出しています。
会社名で抽出

Homeへ > Excelでアプリケーションソフト2 > 顧客管理ソフトを作ってみよう

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved