見出し画像

2-フィルタ操作まとめ(エクセルマクロ)

フィルタの設定・解除を自在にあやつる!

皆さんこんにちは。
今回は誰でも一度はひっかっかるフィルタ操作についてまとめました。
これで、フィルタ操作が楽しくなります。

◆まとめたいこと
・「AutoFilter」「AutoFilterMode」「FilterMode」の区別
・「ShowAllData」でエラーにしない秘密!

◆・・・Mode
「AutoFilterMode」「FilterMode」"Mode"とついているこの2つのプロパティは判定するときに使います。

画像1

★「AutoFilterMode」・・・フィルタボタンが表示されていればTrue


画像2

★「FilterMode」・・・フィルタで絞り込まれていればTrue


画像3

◆「AutoFilter」
フィルタボタンの表示・非表示の切り替えのメソッドです。
フィルタボタンが表示されていないデータで実行するとフィルタボタンが表示されて、表示されているデータで実行するとフィルタボタンが非表示になります。

画像4

★最後にご紹介したフィルタボタンの切り替え「AutoFilter」だけが
シート名. セル範囲. AutoFilter
の順番で、セル範囲の次に使われています。
Worksheets("リスト").Range("A1").AutoFilter


★最初にご紹介した判定に使うプロパティ2つはシート名の次に書きます。

・「AutoFilterMode」は
シート名. AutoFilterMode
Worksheets("リスト")
.AutoFilterMode = True

・「FilterMode」も
シート名. FilterMode
Worksheets("リスト").FilterMode = True


◆「ShowAllData」

これは、データが絞り込まれている状態で実行したときに、絞り込まれたデータを表示するメソッドです。
ですので、絞り込まれていない状態のデータで実行するとエラーになってしまいます。

画像5

「ShowAllData」を使ってデータをすべて表示させたいときは、データの状態を確認してからつかう!
前半にご紹介しました、「AutoFilterMode」「FilterMode」この2つのプロパティで判定してから「ShowAllData」を登場させるのです。


画像7

以下にサンプルコードを3種類について載せておきます。

画像7


【テキスト】*************************************************************

Sub sono1() '(フィルタボタンの表示or非表示切替)
  Worksheets("リスト").Range("A1").AutoFilter
End Sub

Sub sono2() '(フィルタボタンが表示されているor非表示の判定)
  If Worksheets("リスト").AutoFilterMode = True Then
    If Worksheets("リスト").FilterMode = True Then   '(絞込み確認)
      Worksheets("リスト").ShowAllData
    End If
  End If
End Sub

Sub sono3() '(フィルタで絞り込まれているor絞られてないの判定)
  If Worksheets("リスト").FilterMode = True Then
    Worksheets("リスト").ShowAllData
  End If
End Sub

*******************************************************************************

今回は以上です。
最後までご覧いただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?