Excel VBAで数値の範囲を指定し抽出する|AdvancedFilterを使用

Excel VBAを使い、数値の範囲を指定し抽出するにはAdvancedFilterを使用します。



Homeに戻る > Excel セルのTipsへ

数値の範囲を指定するというのは、例えば5~10のデータが含まれるレコードを抽出するということです。

AdvancedFilterメソッドの構文と引数については、「複数条件で抽出する方法|AdvancedFilterを使用」を参照してください。

数値の範囲は、引数CriteriaRangeに「<>=」の数学記号を付けた、数値範囲が入力されているセルを指定します。

このページでは、MINとMAXのセルに入力した数値で抽出します。


Excel VBAでAdvancedFilterを使い、数値の範囲を指定し抽出する

Excel VBA シートコード

VBAの説明

  1. [複数条件検索]ボタンをクリックすると、複数条件抽出のプロシージャを実行します。
  2. 抽出条件の最小値になる「MIN」をB4セルからB12に、数学記号の「>=」を付けコピーします。
  3. 次の抽出条件になる「MAX」をC4セルからC12に、ワイルドカードの「<=」を付けコピーします。
  4. 以上で「>=3」から「<=100」が含まれるデータが抽出できます。
  5. 抽出結果を表示するセルをクリアします。CurrentRegion.ClearContentsでデータがあるセル範囲をクリアします。
  6. 抽出元のシートから、データが入力されている最下行を検索します。
  7. AdvancedFilterを使い抽出を実行します。
    object:抽出元のセル範囲は、データが入力されている最下行から作成しています。
    Action:抽出先はxlFilterCopyを設定し、コピーし表示するようにします。
    Criteriarange:抽出条件の範囲は最初にコピーした、B11:C12です。
    Copytorange:抽出先はA20です。
    Unique:Falseに設定しているので、重複したデータも抽出されます。
  8. コピー先にデータがなければ「見つかりませんでした。」と表示します。 データがあれば、コピー先の最下行を検索し、そこから抽出件数を算出し表示します。
  9. 最初にコピーした抽出条件をクリアします。
Private Sub ExFind()
    Dim s As String
    Dim coun As Long
    Dim last As Long
    
    '抽出条件の作成
    If Range("B4") <> "" Then
        Range("B12") = ">=" & Range("B4")
    End If
    If Range("C4") <> "" Then
        Range("C12") = "<=" & Range("C4")
    End If
    
    '検索結果コピー領域のクリア
    Range("A20").CurrentRegion.ClearContents
    
    Sheets("Sheet2").Select
    ActiveSheet.Range("A1").Activate
    
    last = ActiveSheet.Range("A1").End(xlDown).Row
    
    '抽出しコピー
    ActiveSheet.Range("A1:C" & last).AdvancedFilter Action:=xlFilterCopy, _
    Criteriarange:=Range("B11:C12"), copytorange:=Range("A20"), Unique:=False


    '結果表示
    Sheets("Sheet1").Select
    If Range("A21") = "" Then
        Range("B15") = "見つかりませんでした。"
    Else
        coun = Range("A20").End(xlDown).Row - 20
        Range("B15") = coun & " 件見つかりました。"
    End If
    
    '抽出条件のクリア
    Range("B12:C12") = ""
End Sub


Private Sub CommandButton1_Click()
    ExFind
End Sub



Sheet2にある、抽出対象データのExcelシート

抽出対象

Excel実行結果

No.が「3から100」までの条件で抽出した結果、2件見つかりました。

抽出結果


Homeに戻る > Excel セルのTipsへ

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


Copyright (c) Excel-Excel ! All rights reserved