教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について説明していきます。

【ExcelVBA セル操作】オートフィルタの設定または解除する方法(AutoFilter)について教えて!

       f:id:m_kbou:20200419130951p:plain

オートフィルタの設定または解除する方法について説明します。オートフィルタを設定または解除するにはAutoFilterメソッドを使用します。データの抽出や絞り込み等で多用する事が多い機能ですので、是非覚えてみて下さい。

 

【目次】

 

構文

記述方法は、以下の通りとなります。

=======================================================================

Range(”[セル範囲]”).AutoFilter =======================================================================

[説明]:

オートフィルダの設定又は設定解除するには「Range(”[セル範囲]”).AutoFilter」と記述します。[セル範囲]にはオートフィルタを設定または解除するセル範囲を記述し、「”」(ダブルクォーテーション)で囲みます。オートフィルタを設定または解除するにはAutoFilterメソッドを記述します。内容を纏めると、「[セル範囲]で指定したセル範囲にオートフィルタを設定または解除して下さい。」との意味になります。

[記述例]:

Range("A1:D1").AutoFilter

 

使い方

使い方について、具体的に説明していきます。

オートフィルタを設定する方法

オートフィルタを設定する方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    Range("A1:D1").AutoFilter
End Sub

-------------------------------------------------

内容は、「A1セル~D1セルにオートフィルタを設定または解除して下さい。」との意味になります。
※オートフィルタが設定されていない場合はオートフィルタを設定し、オートフィルタが既に設定されている場合はオートフィルタを解除します。

[実行例]:

(実行前)

※A1セル~D4セルにデータが入力されています。(A1セル~D1セルには項目名が入力されており、オートフィルタが設定されていない状態です)

f:id:m_kbou:20190906084123p:plain

(実行後)

※A1セル~D1セルにオートフィルタが設定されます。

f:id:m_kbou:20190906084135p:plain

オートフィルタを設定する方法の説明は以上です。

 

オートフィルタを解除する方法

オートフィルタを解除する方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    Range("A1:D1").AutoFilter
End Sub

-------------------------------------------------

内容は、「A1セル~D1セルにオートフィルタを設定または解除して下さい。」との意味になります。
※オートフィルタが設定されていない場合はオートフィルタを設定し、オートフィルタが既に設定されている場合はオートフィルタを解除します。

[実行例]:

(実行前)

※A1セル~D1セルにオートフィルタが設定されています。

f:id:m_kbou:20190906084135p:plain

(実行後)

※A1セル~D1セルのオートフィルタが解除されます。

f:id:m_kbou:20190906084123p:plain

オートフィルタを解除する方法の説明は以上です。

 

おわりに

今回はオートフィルタの設定方法について説明しました。上記でも説明した通り、オートフィルタの設定または解除は、同じ処理を繰り返し実行する事で設定⇔解除が繰り返されます。混乱しないように使用して下さい。