AutoFilter がオンになっているかどうかを確認する Excel VBA (4 つの簡単な方法)
Excel の オートフィルタ 特定の条件に基づいてデータを抽出するには、機能が非常に効率的です。ただし、技術的な問題が原因で AutoFilter 非表示になるか、フィルターがない場合でも、Excel にはフィルターがあることが示されます。その場合、 AutoFilter かどうかを理解することはまったく不可能です。 Excel ワークシートで有効になっているかどうか。 VBA の実装 は、Excel で操作を実行するための最も効果的、迅速、かつ安全な方法です。この記事では、オートフィルターがオンになっているかどうかを確認するための 4 つの簡単で迅速な方法を紹介します。 VBA マクロを使用して Excel で .
ワークブックをダウンロード
ここから無料の練習用 Excel ワークブックをダウンロードできます。
Excel でオートフィルターがオンになっているかどうかを VBA で簡単に確認する 4 つの方法
このセクションに続いて、オートフィルターがオンになっているかどうかを確認する方法を学習します。 VBA を使用した Excel で
上記はデータセットの例です この記事では手順について説明します。
1. Excel ワークシートで AutoFilter がオンまたはオフになっているかどうかを確認する VBA を埋め込む
このセクションでは、Excel ワークシートでオートフィルターがオンになっているかどうかを確認する方法を学習します。 VBA で .実行する手順を以下に示します。
手順:
- 最初に Alt + F11 を押します キーボードで、またはタブ Developer -> Visual Basic に移動します Visual Basic Editor を開く .
- 次に、ポップアップ コード ウィンドウで、メニュー バーから [挿入] -> [モジュール] をクリックします。 .
- 次に、コピー 次のコードと 貼り付け それをコード ウィンドウに表示します。
Sub AutoFilterCheck()
If ActiveSheet.AutoFilterMode = True Then
MsgBox "Auto Filter is turned on"
Else
MsgBox "Auto Filter is turned off"
End If
End Sub
コードを実行する準備ができました。
- では、 F5 を押してください キーボードまたはメニュー バーから Run -> Run Sub/UserForm を選択します . スモール ラン アイコンをクリックすることもできます。 サブメニュー バーでマクロを実行します。
コードの実行が成功したら、次の画像を見て結果を確認してください。
さて、上の画像を見てください。データセットにフィルター矢印はありませんが、Excel MsgBox このシートでオートフィルタがオンになっていることを示しています .
VBA の実装 操作に不確実性があるこれらの種類のシナリオでは非常に便利です。 VBA マクロは、目に見えない場合でも正しい結果を抽出するのに役立ちます。
VBA コードの説明
If ActiveSheet.AutoFilterMode = True Then
MsgBox "Auto Filter is turned on"
Else
MsgBox "Auto Filter is turned off"
End If
このコードは、アクティブ シートでオート フィルタ モードが true の場合を参照しています。 、「自動フィルタがオンになっています」を返します 」 Excel MsgBox のメッセージ; それ以外 、「自動フィルターがオフになっています」をスローします 」メッセージ。
続きを読む: Excel VBA:オートフィルターが存在する場合は削除する (7 つの方法)
2. VBA コードをデバッグし、アクティブ シートの合計オートフィルターの数を取得する
このセクションでは、コードをデバッグして AutoFilter の数をカウントする方法について説明します Excelシートにあります。コードの実行後、イミディエイト ウィンドウに結果が表示されます Excel VBA の .
それを取得する手順を以下に示します。
手順:
- 前と同じように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- 次に、コピー 次のコードと貼り付け それをコード ウィンドウに表示します。
Sub CountAutoFilters()
Dim iCount As Long
If ActiveSheet.AutoFilterMode = True Then iCount = 1
Debug.Print "AutoFilterMode Count: " & iCount
End Sub
コードを実行する準備ができました。
- その後、実行 上記のセクションで示したマクロ。結果を下の画像に示します。
上の画像でわかるように、イミディエイト ウィンドウで 有効なオートフィルターの総数を取得します
VBA コードの説明
Dim iCount As Long
宣言 変数 .
If ActiveSheet.AutoFilterMode = True Then iCount = 1
Debug.Print "AutoFilterMode Count: " & iCount
コード内のこの数行は、アクティブ シートでオート フィルタ モードが true の場合を意味します。 、次にカウントを開始し、合計カウントを出力します .
続きを読む: Excel の同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)
3. VBA を適用して、特定の列がフィルター処理されているかどうかを確認する
特定の列かどうかを確認したいとします。 Excel スプレッドシートでフィルタリングされているかどうか VBA で .
その方法の手順を見てみましょう。
手順:
- 前に示したように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- 次に、コピー 次のコードと貼り付け それをコード ウィンドウに表示します。
Sub CheckColumnFilter()
Dim iSheet As Worksheet
Set iSheet = ActiveSheet
If iSheet.AutoFilter.Filters(2).On Then
MsgBox "Column B is filtered."
Else
MsgBox "Column B is not filtered."
End If
End Sub
コードを実行する準備ができました。
- 後で、走る マクロを実行し、次の画像を見て出力を確認してください。
さて、上の画像を考えてみましょう。 列 B にフィルターの矢印があることがわかりますが、 、マクロは存在しないことを示しています。したがって、コードの実行が成功した後、列 B は AutoFiltered ではないと言えます。 .
VBA コードの説明
Dim iSheet As Worksheet
宣言中 変数 ワークシート用 .
Set iSheet = ActiveSheet
アクティブなシートを保存
If iSheet.AutoFilter.Filters(2).On Then
MsgBox "Column B is filtered."
Else
MsgBox "Column B is not filtered."
End If
このコードは、アクティブ シートで列 2 または列 B のオート フィルタが true の場合を参照しています。 、「列 B がフィルター処理されました。」を返します。 」 Excel MsgBox のメッセージ; それ以外 、「列 B はフィルタリングされていません。」をスローします。 」メッセージ。
続きを読む: Excel で VBA を使用して特定の値と等しくない値をオートフィルター処理する方法
4. Excel ワークブックで有効なオートフィルターをチェックする VBA マクロ
このセクションでは、特定の Excel ワークブックのシートで有効または無効になっているオートフィルターを確認する方法について説明します .
実行する手順を以下に示します。
手順:
- まず、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- 次に、コピー 次のコードと貼り付け それをコード ウィンドウに表示します。
Sub CheckAutofilterSheet()
Dim z As Double
For z = 1 To ThisWorkbook.Sheets.Count
If ThisWorkbook.Sheets(z).AutoFilterMode Then
MsgBox ThisWorkbook.Sheets(z).Name & " has enabled Autofilter"
End If
Next
End Sub
コードを実行する準備ができました。
- 次に、走る マクロ。次の画像で結果を確認してください。
上の画像でわかるように、ワークブックには「データセット」という名前のワークシートがあります。 」。 Excel の MsgBox 「データセット」シートでオートフィルターがオンになっていることを示しています .特定の Excel ワークブック内のすべてのスプレッドシートに対してこのコードを実行できます。
VBA コードの説明
Dim z As Double
宣言中 変数 .
For z = 1 To ThisWorkbook.Sheets.Count
ループを開始します 最初のシートから合計シート数まで
If ThisWorkbook.Sheets(z).AutoFilterMode Then
MsgBox ThisWorkbook.Sheets(z).Name & " has enabled Autofilter"
End If
Next
最初のシートでオート フィルタ モードがオンになっている場合 、メッセージを MsgBox に投げます .その後、コードは条件を終了します 次のシートに移動 反復を実行します。 すべてのシート数に達するまでこれを続けます
続きを読む: Excel VBA で表示されている行をオートフィルターしてコピーする方法
結論
結論として、この記事では、オートフィルターがオンになっているかどうかを確認する簡単で迅速な方法を 4 つ紹介しました。 VBA マクロを使用して Excel で .この記事があなたにとって非常に有益であることを願っています。このトピックに関する質問はお気軽にどうぞ。
関連記事
- [修正]:Range クラスの AutoFilter メソッドが失敗しました (5 つの解決策)
- VBA オートフィルター:最小から最大への並べ替え (3 つの方法)
-
Excel で階層を作成する方法 (3 つの簡単な方法)
Excel で 、「階層」という用語には 2 つの異なる意味があります。最初のより単純な定義は、組織図などの階層構造を視覚化するのに役立つ特定の種類のチャートを指します。 パワーピボット 一方、階層を使用すると、テーブル内のネストされた列のリストをすばやくドリルアップおよびドリルダウンできます。この記事では、 Excel で階層を作成する方法について説明します。 練習用ワークブックはこちらからダウンロードできます。 Hierarchy.xlsx を作成 Excel で階層を作成する 3 つの便利な方法 この記事では、3 について説明します Excel で階層を作成する簡単
-
Excel でアンケートを作成する方法 (2 つの簡単な方法)
この記事では、Excel でアンケートを作成する方法を学習します。 .質問票は、一連の質問またはオプション付きの特定の項目です。回答者から情報を収集するために使用されます。 Excel では、ユーザーはいくつかの簡単な手順に従ってアンケートを作成できます。今日は 2 のデモンストレーションを行います 簡単な方法。これらの方法を使用すると、Excel でアンケートを簡単に作成できます。それでは、これ以上遅滞なく、議論を始めましょう。 ここから練習用ワークブックをダウンロードできます。 Excel でアンケートを作成する 2 つの簡単な方法 Excel でアンケートを作成するには、2 つの方