• ベストアンサー

Excel VBA 全てのsheetを対象にオートフィルターを一気に解除したい

1つのbook.xlsに対して複数のsheetがあり、 仮)1 2 3 … 40個ぐらいのsheetがあるとします。 ▲条件 1sheetはオートフィルター機能を使用しているが…、2sheetは使用していない、規則性や順番などはなくオートフィルターを使用しているsheet、使用していないsheetがランダムに並んで混在しています。 ▲処理したい内容 で、行いたい処理は全てのsheetを対象にオートフィルターを一気にVBAで解除したい。可能でしょうか? アドバイスよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kumadayo
  • ベストアンサー率31% (9/29)
回答No.1

Dim x As Worksheet For Each x In ThisWorkbook.Sheets If x.AutoFilterMode = True Then x.Cells.AutoFilter End If Next これでどうですか^-^?

u-mesh12
質問者

お礼

お礼送れてすいません(^_^; おおっ素晴らしい! 思い通りの結果が得られました。 アドバイスありがとうごさいましたm(_ _)m

関連するQ&A

  • EXCEL2003 VBA オートフィルター解除

    お世話になります。 EXCEL2003を使用しています。 10列ほど項目が並んだEXCELシートがありますが、このシートを開いた時にオートフィルターを10列すべての項目でオートフィルターを解除する仕組みをVBAで構築したいのです。 EXCEL2007ではオートフィルターモードという便利なプロパティがあるようですが、EXCEL2003で一括でオートフィルターを解除する方法を知りたいです。 (私以外のユーザーがオートフィルターをかけている時がよくあるので) どなたかお知恵をお借りできませんでしょうか? よろしくお願い致します。 環境 Windows XP SP3 EXCEL2003

  • VBA オートフィルタの設定・解除

    VBAで、データの並べ替えを行った後、1番最後に行ごと選択してオートフィルタを次の様に設定しています。 ' オートフィルタつける Rows( 変数1 & ":" & 変数2).Select Selection.AutoFilter ----------------------------------------------- これだと、1回目のプログラムは正常に動くのですが、 次に同じシートを利用して、またプログラムを動かすと、 シート上にオートフィルタが既に設定されているままになっているので、 オートフィルタを解除して終わってしまいます。 なので、【すでにオートフィルタがシート上で設定されている場合は、オートフィルタを解除する】 ということをプログラムに組み込みたいのですが、そういった式(?)は ありますでしょうか。 ※初心者で、わかりにくい文章になっているかと思いますが、  何卒宜しくお願い致します。

  • エクセルでオートフィルターが使えない

    エクセルで「データ」->「フィルター」->「オートフィルター」が使えなくなっています。 該当シートではオートフィルターを使用していません それと ブックを開いたときにブック名の他に[作業グループ] と名前が付いています これが原因なのでしょうか 解除する方法を教えてください エクセル2002

  • EXCELのオートフィルターの保護の解除

    EXCELのオートフィルターの保護の解除の仕方を教えてください。 一部は保護を解除して使用してますが、シートに保護をかけると、オートフィルターの機能が使えなくなります。 どうすればいいのでしょうか?

  • Excelで、ブック中すべてのシートのオートフィルタ解除

    Excel2002(officeXP)で、編集->検索から検索対象をすべてのブックとしたときに、オートフィルタを設定したシートですでにフィルタをかけていると、フィルタで除外されているデータが検索されません。 フィルタがかかっているシートがわかっている場合は、データ->フィルタ->すべて表示をかけるのですが、すべてのシートのフィルタを「すべて表示」したい場合、どのような方法がありますか。

  • Excel共有ブックのオートフィルタについて

    Excelの共有ブックにオートフィルタを設定したあと、シート保護をして10人ほどで使用していますが、時々、設定していたはずのオートフィルタが消えてしまうという現象が起こります。 シート保護をしていると、オートフィルタの設定変更は出来ないように思えるのですが、特に誰かが共有を解除しているわけでもないのに、オートフィルタが消えてしまいます。 どなたか、原因と対処方法をご存じの方がいらっしゃいましたら教えてください。

  • Excelのオートフィルタについて

    こんにちは。人からもらったExcelブックですが、フィルタを実行しているシートのフィルタボタン(▽このボタンです。)を押してもプルダウンの選択項目が出てこなくなっていました。そこで、いったんオートフィルタをメニューから解除してみるのですが、データはすべて表示されず、画面はフィルタボタンが外れただけの状態になります。その後、行の再表示を実行するとすべて表示されるようになりました。 この後、再度オートフィルタを実行すると問題なく操作はできるようになりました。 ちなみに初期の状態では、2つの列にオートフィルタを実行しているようです。 作成者にどうしてこうなるのか聞かれましたが、さっぱりわかりません。また、シートやブックの保護も実行されてませんでした。 実行しているソフトはExcel2000です。作成したソフトはExcelでバージョンは残念ながら不明です。 お分かりの方、どうぞよろしくお願いいたします。

  • VBAでオートフィルターの再検索

    現在VBAでオートフィルターで絞ってある条件を一度解除してもう一度同じ条件で検索をしたいと思っていますが、出来ず困っています。 内容としては たとえば、A1に"数字"、A2に"2"、A3に"3"とあった場合、A1でオートフィルターをかけ、絞り込みます。(何の条件で絞り込んだかは不明) この状態から、VBAを使います。 VBAで「一度オートフィルターを解除し、再度オートフィルターで同じ条件で絞る」という作業をしたいのですが、解除はできますが、同じ条件で再度絞り込みができません。 (たぶんCriterialの値を取得するのでしょうか?それもやり方がわかりません。) 何をしたいのか目的はと聞かれると、説明するだけでもややこしくなってしまいますので、簡単にやりたい作業だけかかせていただきました。 こんな作業は出来ますでしょうか? 教えていただけたら、幸いでございます。 意味が分からなければ、また説明させていただきます。  

  • エクセルVBA オートフィルタの選択を元に戻す

    エクセルのVBAで、次のことはできるでしょうか。 ブックの中の3つのシートはオートフィルタが設定してあり、任意で操作し、検索に使っています。(オートフィルタを設定しないしーとが2つあります) ・別のシートにチェンジしたら、チェンジ前のシートがオートフィルタで特定の行だけを表示していたら、オートフィルタを <すべて> に戻して、消えていた行を全て表示させたいのです。(オートフィルタは次回にまた使うので、データ-フィルタ-オートフィルタでオートフィルタ自体を解除してしまうような状態にはしたくありません) ・同じく、上記のことをブックを閉じるときにも実行したいのです。 ちなみに、オートフィルタをかけてあるシートには、以下のコードがあります。 よろしくお願いします。 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) With Sheets("印刷") .Range("E15:E17").Value = _ Application.Transpose(Cells(Target.Row, 7).Resize(, 3).Value) .Range("AA16").Value = _ Cells(Target.Row, 10).Value .Range("AQ16").Value = _ Cells(Target.Row, 11).Value .Range("AX16").Value = _ Cells(Target.Row, 12).Value End With With Sheets("施設") .Range("C2").Value = _ Cells(Target.Row, 10).Value End With Cancel = True Sheets("施設").Select End Sub

  • エクセルでブック間のシートの合体?教えてください。

    エクセルの作業で困っちゃいました。 同じホルダー内に 0210A.xls、sから0309A.xlsの12種類 0210B.xls、sから0309B.xlsの12種類 0210C.xls、sから0309C.xlsの12種類 0210D.xls、sから0309D.xlsの12種類 の48のブックがあります。(0210は2002年10月の意味です。) 各ブックは複数のシートを持っており、各ブックに共通してあるのは「AAA」、「BBB」、「CCC」の3種類で、それ以外のシートもあります。シートの順番は各ブックによりまちまちです。 これらのブックの共通する3種類のシートだけを合体して 0210AB.xlsから0309AB.xlsの12種類、(AとBの合体) 0210CD.xlsから0309CD.xlsの12種類、(CとDの合体) の24種類のブックを作りたいのです。 各ブックは「AAA」、「BBB」、「CCC」の3シートを持ちます。中身はオリジナルの各「AAA」、「BBB」、「CCC」の単純な寄せ集めです。 データは各シートとも1行目に項目、2行目以降にデータで、列はAF列まで使用しています。データの個数はまちまちで、オートフィルターを使用しています。 たとえば、0210A.xlsのシートAAAが200行であれば0210BのシートAAAのデータの一行目の項目は不要ですので2行目から最終行までコピーして201行以降に貼り付けるという感じです。同様にシートBBB、シートCCCも処理します。各シート1行目はオリジナルと同じ項目名とします。 手作業でやろうと思いましたが、誤りの発生もこわいのでVBAなどでうまくできる方法はないでしょうか?わたしのVBAの知識はマクロ自動記録ができるくらいなので助けてほしいのです。 Windows2000でエクセルも2000です。 よろしくお願いしま~す。

専門家に質問してみよう