- 公開日:
ExcelのVBA(マクロ)を使ってフィルターを設定する方法
Excelのフィルターは、条件を指定してデータを抽出することができるなど表の整理に役立ちます。
この記事では、ExcelのVBA(マクロ)を使ってフィルターを設定する方法と合わせて、VBAを使ってフィルターで抽出する方法もご紹介しています。
VBAを使うと条件を指定する工程などが自動化でき、効率的にフィルターの設定やデータの抽出を行うことができます。
Excelを使った日付選択のマクロを無料でダウンロード!
Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。
開発タブを表示させる
![開発タブが表示されている](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method1.png)
今回はVBAを使用してフィルターを設定します。
上記の画像のような「開発」タブが表示されていない場合は、以下の記事を参考にして表示させましょう。
フィルターを設定するコード
フィルターを設定するコードを下記に記載するので、コピーして使用してください。
Sub フィルターを設定する()
ActiveSheet.Range("A1").AutoFilter
End Sub
詳しい方法は、以下の「ExcelのVBA(マクロ)を使ってフィルターを設定する方法」セクションでご紹介しています。
ExcelのVBA(マクロ)を使ってフィルターを設定する方法
VBAを使ってExcelの表にフィルターをかける方法をご紹介します。
![](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method2.png)
上記の画像の表に、VBAを使ってフィルターをかけます。まず、マクロを作成します。①開発タブ、②「Visual Basic」の順に選択します。
![](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method3.png)
「Microsoft Visual Basic for Applications」が開きました。①挿入タブ、②標準モジュールの順に選択します。
![](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method4.png)
標準モジュールが開きました。上記「フィルターを設定するコード」セクションに記載したコードをコピーして貼り付けてください。「("A1")」は表に含まれるセルであればどこでも構いません。任意のセル番地に変更可能です。
![](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method5.png)
作成したマクロを保存します。①ファイルタブ、②上書き保存の順に選択します。その際に、「次の機能はマクロなしのブックには保存できません」というダイアログボックスが表示された場合は、「いいえ」を選択してください。
![](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method18.png)
「名前を付けて保存」ダイアログボックスが表示されました。①保存先(例:デスクトップ)を選択し、②ファイル名(例:フィルターを設定する)を入力します。③ファイルの種類で「Excel マクロ有効ブック」を選択し、④保存ボタンを押します。
![](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method7.png)
Excelシートに戻り、マクロを実行します。①開発タブ、②マクロの順に選択します。
![](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method8.png)
「マクロ」ダイアログボックスが表示されました。①作成したマクロ(例:フィルターを設定する)を選択し、②実行ボタンを押します。
![](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method9.png)
見出しセル右下にフィルターボタンが追加されました。VBAを使ってフィルターの設定ができました。
VBAを使ってフィルターで抽出する方法
VBAを使ってExcelの表にフィルターをかけて、データを抽出する方法をご紹介します。
![Visual Basicを選択する](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method10.png)
上記の画像の表にVBAを使ってフィルターをかけ、「B社」のデータだけを抽出します。
まず、マクロを作成します。
①開発タブ、②「Visual Basic」の順に選択します。
![標準モジュールを開く](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method11.png)
「Microsoft Visual Basic for Applications」が開きました。①挿入タブ、②標準モジュールの順に選択します。
![コードを入力する](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method12.png)
標準モジュールが開きました。
以下のコードをコピーしてモジュールに貼り付けます。
Sub フィルターをかけて抽出する()
ActiveSheet.Range("A1").AutoFilter 3, "B社"
End Sub
「("A1")」は表に含まれるセル番地であればどこでも構いません。
Autofilterの後には抽出条件を入力します。表の左端の列(例:A列)を基準に数えた数字で列を指定し、「"B社"」を抽出したい項目に変更します。
今回はC列なので「3」、条件に「B社」を入力しています。
![作成したマクロを保存する](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method13.png)
作成したマクロを保存します。
①ファイルタブ、②上書き保存の順に選択します。
その際に、「次の機能はマクロなしのブックには保存できません」というダイアログボックスが表示された場合は、「いいえ」を選択してください。
![保存先を選択する](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method14.png)
「名前を付けて保存」ダイアログボックスが表示されました。
①保存先(例:デスクトップ)を選択し、②ファイル名(例:フィルターをかけて抽出する)を入力します。
③ファイルの種類で「Excel マクロ有効ブック」を選択し、④保存ボタンを押します。
![マクロを開く](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method15.png)
Excelシートに戻り、マクロを実行します。
①開発タブ、②マクロの順に選択します。
![マクロを実行する](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method16.png)
「マクロ」ダイアログボックスが表示されました。
①作成したマクロ(例:フィルターをかけて抽出する)を選択し、②実行ボタンを押します
![VBAを使ってフィルターで抽出できた](https://office-hack.com/wp-content/uploads/excel-set-filter-using-vba-method17.png)
表にフィルターがかかり、「B社」のデータだけが抽出されました。