Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

マイクロソフト エクセル オートフィルターを削除する複数の方法を提供します ワークシートから または Excel テーブル。 この記事では、 7 について学びます。 オートフィルターが存在する場合はそれを削除するメソッド VBA スクリプトを使用して Excel で。

次のリンクから Excel ファイルをダウンロードして、それに沿って練習できます。

Excel に AutoFilter が存在する場合、VBA を使用して AutoFilter を削除する 7 つの例

1.存在する場合、アクティブなワークシートからオートフィルターを削除します

次のスクリーンショットは AutoFilter を示しています アクティブなワークシートで実行中です。 この AutoFilter を削除します VBA を使用する コード。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

オートフィルタを削除したい場合 アクティブなワークシートから 次に、以下の手順に従ってください:

❶ まず、ALT + F11 を押します VBA エディタを開きます。

❷ 次に 挿入 に移動します>> モジュール .

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コピー 次の VBA コード。

Public Sub RemoveAFActiveWorksheet()

  If ActiveSheet.AutoFilterMode Then
     ActiveSheet.AutoFilterMode = False
  End If

End Sub

貼り付け そして 保存 VBA エディタのコード。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コードの内訳

  • ここでは、 サブ プロシージャ を作成しました Public Sub RemoveAFActiveWorksheet
  • 次に、IF ステートメントを使用しました 存在するかどうかを確認する 任意の オートフィルター 存在する場合 AutoFilter を削除します AutoFilterMode を設定すると に .

アクティブなワークシート に戻ります ALT + F11 を押します マクロを開く ダイアログ ボックス。

マクロ RemoveAFActiveWorksheet を選択します 実行をクリックします ボタン。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

オートフィルタ が表示されます 削除されました すべてのデータが表示されます

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

続きを読む: オートフィルターがオンになっているかどうかを確認する Excel VBA (4 つの簡単な方法)

2. VBA を使用してすべてのワークシートからオートフィルターを削除する

次の図を見てください。 オートフィルタ が表示されます 両方のワークシートに適用されます。 VBA を書きます オートフィルタを削除するコード すべてのワークシートから ワークブックで .

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

ブック内のすべてのワークシートからオートフィルターを削除するには 以下の手順に従ってください:

❶ まず、ALT + F11 を押します VBA エディタを開きます。

❷ 次に 挿入 に移動します>> モジュール .

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コピー 次の VBA コード。

Public Sub DeleteAFfromallWorksheets()

  Dim xWs1 As Worksheet

  For Each xWs1 In ActiveWorkbook.Worksheets
   If xWs1.AutoFilterMode = True Then
      xWs1.AutoFilterMode = False
   End If
  Next xWs1

End Sub

貼り付け そして 保存 VBA エディタのコード。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コードの内訳

  • ここでは、For ループを使用しました 検索 オートフィルター 各ワークシート
  • 次に、IF ステートメントを使用しました 存在するかどうかを確認する 存在する場合 AutoFilter を削除します ActiveSheet.AutoFilterMode を設定すると に .

ワークシートに戻ります ALT + F11 を押します マクロを開く ダイアログ ボックス。

マクロ RemoveAFfromallWorksheets を選択します。 実行をクリックします ボタン。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

これで、すべてのオートフィルター アイコンが削除されたことがわかります すべてのワークシートから ワークブックで 下の図のように:

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

3.テーブルの単一の列からオートフィルターをクリア

下の図では、 AutoFilter を確認できます。 最初の列にのみ適用されます テーブルの。このメソッドでは、1 つの列からオートフィルターをクリアするコードを記述します。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

そのために、

❶ まず、ALT + F11 を押します VBA エディタを開きます。

❷ 次に 挿入 に移動します>> モジュール .

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

❸ 今 コピー 次の VBA コード。

Sub DeleteAFSingleColumnfromTable()

    Dim xWs1 As Worksheet
    Dim xTableName1 As String
    Dim xLT1 As ListObject

    xTableName1 = "TableA"
    Set xWs1 = Sheets("MyTable1")
    Set xLT1 = xWs1.ListObjects(xTableName1)
    xLT1.Range.AutoFilter Field:=1

End Sub

❹その後、貼り付け そして 保存 VBA エディタのコード。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コードの内訳

  • まず、3 つの変数を宣言しました
  • 次に、テーブル名を挿入しました とセット シート名 .
  • その後、ListObjects を使用しました 可視化するプロパティ すべての コンテンツ テーブルの .
  • 最後に、入力します テーブル列インデックス オートフィルタ フィールドの使用

ワークシートに戻ります ALT + F11 を押します マクロを開く ダイアログ ボックス。

マクロ RemoveAFSingleColumnfromTable を選択します 実行をクリックします ボタン。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

その後、 AutoFilter が表示されます 最初の列には存在しません

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

4.テーブルの複数の列からオートフィルターを削除

次の図は、2 つの AutoFilter を示しています。 最初のアイコン そして2番目 テーブルの列。 オートフィルタを削除するには、この方法に従ってください。 2 列 から テーブル VBA を使用 .

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

次の手順に従って、複数の列に存在する場合はオートフィルターをクリアします。 Excel テーブルで。

❶ まず、ALT + F11 を押します VBA エディタを開きます。

❷ 次に 挿入 に移動します>> モジュール .

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コピー 次の VBA コード。

Sub DeleteAFMultiColumnsfromTable()

    Dim xWs1 As Worksheet
    Dim xTableName1 As String
    Dim xLT1 As ListObject

    xTableName1 = "TableA"
    Set xWs1 = Sheets("MyTable1")
    Set xLT1 = xWs1.ListObjects(xTableName1)

    xLT1.Range.AutoFilter Field:=1
    xLT1.Range.AutoFilter Field:=2

End Sub

貼り付け そして 保存 VBA エディタのコード。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コードの内訳

  • まず、3 つの変数を宣言しました
  • 次に、テーブル名を挿入しました とセット シート名 .
  • その後、ListObjects を使用しました 可視化するプロパティ すべての コンテンツ テーブルの .
  • 最後に、入力します 2 つのテーブル カラム インデックス オートフィルタ フィールドの使用

ワークシート に戻ります。 ALT + F11 を押します マクロを開く ダイアログ ボックス。

マクロ DeleteAFMultiColumnsfromTable を選択します。 実行をクリックします ボタン。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コードを実行すると、 AutoFilter が表示されます は 削除されています 複数の列から。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

続きを読む: [修正]:Range クラスの AutoFilter メソッドが失敗しました (5 つの解決策)

5. Excel VBA を使用してテーブル全体からオートフィルターをクリアする

オートフィルタ がある場合 下の図のようにテーブルに適用され、削除したい

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

❶ まず、ALT + F11 を押します VBA エディタを開きます。

❷ 次に 挿入 に移動します>> モジュール .

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コピー 次の VBA コード。

Sub RemoveAFfromEntireTable()

  Dim xWs1 As Worksheet
  Dim xTable1 As String
  Dim xTable2 As ListObject

  xTable1 = "TableB"
  Set xWs1 = ActiveSheet
  Set xTable2 = xWs1.ListObjects(xTable1)
  xTable2.AutoFilter.ShowAllData

End Sub

貼り付け そして 保存 VBA エディタのコード。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コードの内訳

  • まず、3 つの変数を宣言しました
  • 次に、テーブル名を挿入しました 次のセット シート名 ActiveSheet として .
  • その後、ListObjects を使用しました 可視化するプロパティ すべての コンテンツ テーブルセットを使用 xTable2 に格納するステートメント
  • 最後に ShowAllData を使用しました AutoFilter をオフにするプロパティ .

ワークシートに戻る テーブルを持って ALT + F11 を押します マクロを開く ダイアログ ボックス。

マクロ RemoveAFfromEntireTable を選択します 実行をクリックします ボタン。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

オートフィルタ 削除されます テーブル全体から 下の図のように:

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

6.存在する場合、パスワードで保護されたワークシートからオートフィルターを削除

下の図に示されている次のデータセットでは、オートフィルターが有効になっていますパスワードで保護されています . 7878 です .

このメソッドでは、VBA コードを取得します クリア out オートフィルター パスワードで保護されたワークシートから このように。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

以下の手順に従ってください:

❶ まず、ALT + F11 を押します VBA エディタを開きます。

❷ 次に 挿入 に移動します>> モジュール .

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コピー 次の VBA コード。

Sub RemoveAFwithPass()

Dim UserPwd As String
UserPwd = "7878"

With ActiveSheet
    .Unprotect Password:=UserPwd
    .ShowAllData
    .Protect _
        Contents:=True, _
        AllowFiltering:=True, _
        UserInterfaceOnly:=True, _
        Password:=UserPwd
End With

End Sub

貼り付け そして 保存 VBA エディタのコード。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コードの内訳

  • まず、変数を宣言しました パスワードを入力します。
  • その後、ActiveSheet で 、ユーザー パスワードを割り当てました パスワード保護の解除へ。
  • ShowAllData を使用 すべてを表示するプロパティ。
  • 次に True を割り当てました 目次へ 、AllowFiltering 、および UserInterfaceOnly 保護を解除する

パスワードで保護されたワークシート に戻ります ALT + F11 を押します マクロを開く ダイアログ ボックス。

マクロ RemoveAFwithPass を選択します。 実行をクリックします ボタン。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

その後、 オートフィルター 削除されます すべての記録が表示されます このように:

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

7.パスワードなしで保護されたワークシートからオートフィルターを削除するための VBA の使用

次の図は、 保護されたデータセット を示しています パスワードなし .このメソッドでは、オートフィルターを削除するコードを記述します。 パスワードなしで保護された から

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

以下の手順に従ってください:

❶ まず、ALT + F11 を押します VBA エディタを開きます。

❷ 次に 挿入 に移動します>> モジュール .

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コピー 次の VBA コード。

Sub RemoveAFwithoutPass()

With ActiveSheet
    .Unprotect
    .ShowAllData
    .Protect _
        Contents:=True, _
        AllowFiltering:=True, _
        UserInterfaceOnly:=True
End With

End Sub

貼り付け そして 保存 VBA エディタのコード。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

コードの内訳

  • まず、With を適用しました ActiveSheet のステートメント 保護解除を使用 ロック解除するプロパティ
  • 次に、ShowAllData を使用しました すべてを表示するプロパティ。
  • 次に True を割り当てました 目次へ 、AllowFiltering 、および UserInterfaceOnly すべての保護を解除します。

アクティブなワークシート に戻ります ALT + F11 を押します マクロを開く ダイアログ ボックス。

マクロ RemoveAFwithoutPass を選択します。 実行をクリックします ボタン。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

最後に、 オートフィルタ 一掃される すべてのデータが表示されます このように:

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

練習セクション

提供された Excel ファイルの最後に、次のスクリーンショットのような Excel シートが表示されます。この記事で説明したすべての方法を実践できる場所です。

Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)

結論

まとめると、 7 について説明しました。 オートフィルターが存在する場合はそれを削除する方法 エクセルでVBAを使っています。この記事に添付されている練習用ワークブックをダウンロードし、それを使用してすべての方法を練習することをお勧めします。以下のコメントセクションで質問をすることを躊躇しないでください.関連するすべてのクエリにできるだけ早く対応するよう努めます。そして、私たちのウェブサイト Exceldemy にアクセスしてください。

関連記事

  • Excel で同じフィールドに複数の条件を指定して AutoFilter する VBA (4 つの方法)
  • Excel で VBA を使用して特定の値と等しくない値をオートフィルター処理する方法
  • VBA オートフィルター:最小から最大への並べ替え (3 つの方法)
  • Excel VBA で表示されている行をオートフィルターしてコピーする方法

  1. Excel で VBA を使用して特定の値と等しくない値をオートフィルターする方法

    この記事では、VBA を使用して、特定の値と等しくない値を自動フィルター処理する方法を紹介します。 エクセルで。ワークシート全体だけでなく、選択した範囲のセルから値を自動フィルター処理する方法を学習します。 Excel の VBA で特定の値と等しくないオートフィルター値 (クイック ビュー) Sub Autofilter_Values_from_Whole_Worksheet() Source_Worksheet = "Sheet1" Destination_Worksheet = "Sheet2" Dim Filtered_Columns()

  2. Excel で不明なリンクを削除する方法 (4 つの適切な例)

    ある Excel ファイルの情報を別の Excel ファイルに使用することがあります。このようにして、Excel ファイルを相互にリンクします。 Excel ファイルに不明なリンクが存在する場合があります。この記事では、Excel でこれらの不明なリンクを削除する方法と、適切な図を使用して他の外部リンクを削除する方法について説明します。 Excel で不明なリンクを削除する 4 つの例 サンプル データセットでは、2 つの外部リンク Cell D5 があることがわかります とD9 .この記事では、これらの外部リンクを示してから削除する方法を示します。 1.セルから不明なリンクを削除