「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
検索文字が未入力の場合の処理は何もしていません。