データの検索(抽出) : Excel(エクセル)

Excelで条件に合ったデータを抽出するにはAutoFilterメソッドを使います。
AutoFilter メソッド : expression.AutoFilter(Field, Criteria1, Operator, Criteria2)
expression : 必ず指定します。フィルタを行う範囲内の 1 つのセルを指定します
Field : 必ず指定します。対象となるフィールド番号を整数で指定します。最も左の列がフィールド番号 1 になります。
Criteria1 : 省略可能です。条件となる文字列か条件式を指定します。
Operator : 省略可能です。抽出方法を指定します。引数を省略するとデータのすべてを表示します。
  xlAnd Criteria1 の条件と Criteria2 の条件を満たすデータを抽出します。
  xlOr Criteria1 の条件か Criteria2 のいずれかの条件を満たすデータを抽出します。
Criteria2 : 省略可能です。2 番目の抽出条件となる文字列を指定します。

下記のExcelコードの流れ。
(1)前回の抽出結果が残っているといけないので、抽出結果の表示領域をクリアします。
(2)抽出する名前をカタカナで入力してもらいます。
(3)入力するカタカナ名が含まれるデータを抽出します。
(4)抽出結果を結果表示位置にコピーします。
(5)抽出結果を解除します。
(6)結果表示位置のデータ数を調べ、メッセージ表示します。

Excel Tipsメニューに戻る

スポンサーリンク



Excelシートコード

Private Sub ExFind()
    Dim s As String
    Dim coun As Long
    
    '検索結果コピー領域のクリア
    Range("A20").CurrentRegion.ClearContents
    
    Sheets("Sheet2").Select
    ActiveSheet.Range("A1").Activate
    
    s = Application.InputBox("カタカナで氏名を入力して下さい")
    If s = "" Or s = "False" Then
        Sheets("Sheet1").Select
        Exit Sub
    End If
    
    '抽出
    ActiveSheet.Range("A1").AutoFilter field:=3, Criteria1:="=*" & s & "*", Operator:=xlAnd
    '結果をコピー
    ActiveSheet.Range("A1").CurrentRegion.Copy Range("A20")
    '解除
    ActiveSheet.Range("A1").AutoFilter

    '結果表示
    Sheets("Sheet1").Select
    If Range("A21") = "" Then
        Range("B8") = "見つかりませんでした。"
    Else
        coun = Range("A20").End(xlDown).Row - 20
        Range("B8") = coun & " 件見つかりました。"
    End If
End Sub

Private Sub CommandButton1_Click()
    ExFind
End Sub

スポンサーリンク



Excel実行前

実行前

検索するナマエを入力します。
検索ダイアログ

Excel実行結果

検索結果

スポンサーリンク






Excel Tipsメニューに戻る

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


Copyright (c) Excel-Excel ! All rights reserved