- 公開日:
ExcelのVBA(マクロ)を使ってフィルターを設定する方法
Excelのフィルターは、条件を指定してデータを抽出することができるなど表の整理に役立ちます。
この記事では、ExcelのVBA(マクロ)を使ってフィルターを設定する方法と合わせて、VBAを使ってフィルターで抽出する方法もご紹介しています。
VBAを使うと条件を指定する工程などが自動化でき、効率的にフィルターの設定やデータの抽出を行うことができます。
Excelを使った日付選択のマクロを無料でダウンロード!
Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。
開発タブを表示させる

今回はVBAを使用してフィルターを設定します。
上記の画像のような「開発」タブが表示されていない場合は、以下の記事を参考にして表示させましょう。
フィルターを設定するコード
フィルターを設定するコードを下記に記載するので、コピーして使用してください。
Sub フィルターを設定する()
ActiveSheet.Range("A1").AutoFilter
End Sub
詳しい方法は、以下の「ExcelのVBA(マクロ)を使ってフィルターを設定する方法」セクションでご紹介しています。
ExcelのVBA(マクロ)を使ってフィルターを設定する方法
VBAを使ってExcelの表にフィルターをかける方法をご紹介します。

上記の画像の表に、VBAを使ってフィルターをかけます。まず、マクロを作成します。①開発タブ、②「Visual Basic」の順に選択します。

「Microsoft Visual Basic for Applications」が開きました。①挿入タブ、②標準モジュールの順に選択します。

標準モジュールが開きました。上記「フィルターを設定するコード」セクションに記載したコードをコピーして貼り付けてください。「("A1")」は表に含まれるセルであればどこでも構いません。任意のセル番地に変更可能です。

作成したマクロを保存します。①ファイルタブ、②上書き保存の順に選択します。その際に、「次の機能はマクロなしのブックには保存できません」というダイアログボックスが表示された場合は、「いいえ」を選択してください。

「名前を付けて保存」ダイアログボックスが表示されました。①保存先(例:デスクトップ)を選択し、②ファイル名(例:フィルターを設定する)を入力します。③ファイルの種類で「Excel マクロ有効ブック」を選択し、④保存ボタンを押します。

Excelシートに戻り、マクロを実行します。①開発タブ、②マクロの順に選択します。

「マクロ」ダイアログボックスが表示されました。①作成したマクロ(例:フィルターを設定する)を選択し、②実行ボタンを押します。

見出しセル右下にフィルターボタンが追加されました。VBAを使ってフィルターの設定ができました。
VBAを使ってフィルターで抽出する方法
VBAを使ってExcelの表にフィルターをかけて、データを抽出する方法をご紹介します。

上記の画像の表にVBAを使ってフィルターをかけ、「B社」のデータだけを抽出します。
まず、マクロを作成します。
①開発タブ、②「Visual Basic」の順に選択します。

「Microsoft Visual Basic for Applications」が開きました。①挿入タブ、②標準モジュールの順に選択します。

標準モジュールが開きました。
以下のコードをコピーしてモジュールに貼り付けます。
Sub フィルターをかけて抽出する()
ActiveSheet.Range("A1").AutoFilter 3, "B社"
End Sub
「("A1")」は表に含まれるセル番地であればどこでも構いません。
Autofilterの後には抽出条件を入力します。表の左端の列(例:A列)を基準に数えた数字で列を指定し、「"B社"」を抽出したい項目に変更します。
今回はC列なので「3」、条件に「B社」を入力しています。

作成したマクロを保存します。
①ファイルタブ、②上書き保存の順に選択します。
その際に、「次の機能はマクロなしのブックには保存できません」というダイアログボックスが表示された場合は、「いいえ」を選択してください。

「名前を付けて保存」ダイアログボックスが表示されました。
①保存先(例:デスクトップ)を選択し、②ファイル名(例:フィルターをかけて抽出する)を入力します。
③ファイルの種類で「Excel マクロ有効ブック」を選択し、④保存ボタンを押します。

Excelシートに戻り、マクロを実行します。
①開発タブ、②マクロの順に選択します。

「マクロ」ダイアログボックスが表示されました。
①作成したマクロ(例:フィルターをかけて抽出する)を選択し、②実行ボタンを押します

表にフィルターがかかり、「B社」のデータだけが抽出されました。