構文 : Rangeオブジェクト.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)
Field - フィルタの対象となる列番号を整数で指定します。左側から始まり、最も左側にある列は 1 になります。
Criteria1 - 抽出条件となる文字列を指定します。省略すると、抽出条件はなしになります。
Operator - フィルタの種類を指定します。
Criteria2 - 2番目の抽出条件となる文字列を指定します。
VisibleDropDown - オートフィルタのドロップダウン矢印を表示する場合はTrue、非表示の場合はFalseを指定します。
Operatorの定数 :
xlTop10Items - 値の上位からCriteria1で指定した数のデータを抽出
xlBottom10Items - 値の下位からCriteria1で指定した数のデータを抽出
Excel実行画面
抽出画面
上位 か 下位 のどちらで抽出するかを、オプションボタンで選択し、何位までか入力します。
上位からトップ5を抽出した結果
下位からトップ5を抽出した結果
Excel VBA実行コード
'人口トップ()抽出
Private Sub CommandButton1_Click()
If TextBox1 = "" Then
MsgBox "抽出する数値を入力してください。"
Exit Sub
End If
If OptionButton1.Value = True Then
'上位トップ
Range("A6").AutoFilter 2, Val(TextBox1.Text), xlTop10Items
Else
'下位トップ
Range("A6").AutoFilter 2, Val(TextBox1.Text), xlBottom10Items
End If
End Sub
'オートフィルタを解除する
Private Sub CommandButton2_Click()
AutoFilterMode = False
End Sub