実務でよくあるのが、「A列で商品を選び、B列で日付を絞り、C列で担当者を選ぶ」という作業。手動でやると1回30秒〜1分はかかりますよね。
今回はそんな手間を省略する方法を紹介します。
コピペでOK!複数列を同時に絞り込むVBAコード
今回は、以下の条件でデータを抜き出すコードを用意しました。
- 1列目(部署)が「営業部」
- 3列目(売上)が「50,000以上」
Excelの「開発」タブから「Visual Basic」を開き、標準モジュールに貼り付けてみてください。
Sub MultiColumnFilter()
' シート名を「売上データ」として指定します
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("売上データ")
' いったんフィルターを解除して、真っさらな状態にします
If ws.AutoFilterMode Then
ws.AutoFilterMode = False
End If
' 1行目に見出しがある表(A1から始まる表)を対象にします
With ws.Range("A1")
' 1列目(Field:=1)を「営業部」で抽出
.AutoFilter Field:=1, Criteria1:="営業部"
' 3列目(Field:=3)を「50000以上(>=50000)」で抽出
.AutoFilter Field:=3, Criteria1:=">=50000"
End With
MsgBox "抽出が完了しました!"
End Sub
このコードのポイント
ただ抽出するだけでなく、最初に「フィルターの解除」を入れているのがポイントです。
既にフィルターがかかっている状態で新しい条件を上書きしようとすると、挙動がおかしくなるのを防ぐための対策です。
また、手動操作では「5万円以上」などの数値条件を入力する際にミスが起きやすいですが、プログラムなら正確性は100%。人間が疲れていても、プログラムは疲れません。
似たようなデータを似たような条件でフィルタリングしないといけないことも実務では多いですよね。あらかじめマクロを組んでおけば、それらをワンクリックで片付けられます!
ぜひ試してみてください。
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント