Excel

抽出条件とフィールドの選択可能なオートフィルターの使い方

2021-02-16

VBAでオートフィルター・抽出条件とフィールドを選択可能にする」の使い方です。

このワークシートの抽出結果は、別ブックのワークシートに転記する用に作成しました。その転記方法については別記事で載せます。

操作方法

(1)セルA2にフィルターの対象となるフィールドの数字を入力します。

  • 1:A列・コード
  • 2:B列・取引先
  • 3:C列・読み
  • 4:D列・住所

(2)抽出条件を選択します。

  • 含む
  • で始まる
  • で終わる

以下の例は、B列取引先の「雀」で終わるデータを抽出します。

オートフィルター

(3)ピンクのコマンドボタン「抽出」をクリックします。

以下は抽出結果です。

抽出

対象データがない場合

対象データなし

エラー処理

エラー処理は最小限にしています。

この例ではセルA2に入力するフィルターの対象となるフィールドは1~4です。

未入力(空白)の時のエラーメッセージです。

未入力のエラー表示

「Private Sub Cmd1_Click( )」でエラー処理をしています。

    If cNo = 0 Then
        MsgBox "セルA2に1~4の数字を入力してください", vbCritical
        Exit Sub
    End If

空白以外のエラー処理は、「データの入力規則」で設定しています。この設定の場合、小数点の入力はできません。

範囲外のエラー表示

「データの入力規則」を使わない場合は、「Private Sub Cmd1_Click( )」を以下のようにします。小数点の数字入力時の制御はしていません。列番号の変数「cNo」はあえてLongを使っています。

    Private Sub Cmd1_Click()
    Dim mName As String
    Dim cNo As Long
    
    mName = Range("B2")
    cNo = Range("A2")
    
    If cNo = 0 Or cNo > 4 Then
        MsgBox "セルA2に1~4の数字を入力してください", vbCritical
        Exit Sub
    End If
    
    Call Chushutu(cNo, mName)
End Sub

検索文字が未入力の場合の処理は何もしていません。

-Excel

© 2021 オフィスのQ&A