• ベストアンサー

【ExcelVBA】同一フォルダ内のオートフィルタを解除したい

xls88の回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

提示されたコードでは、同一ブック内の全ワークシートが操作対象です。 If文でAutoFilterModeを判定し処理をするようにしてみました。 Sub tes1()   Dim W As Worksheet   For Each W In Worksheets     If W.AutoFilterMode = True Then       On Error Resume Next       W.ShowAllData       On Error GoTo 0     End If   Next W End Sub

bari_saku
質問者

お礼

ご回答ありがとうございます。無事解決しました。 あとはこのコードの外側に、同一フォルダ内のファイルを順次処理せよというコードを書けばいいと思うのですが、もし下記の解決法をご存知でしたら教えて頂けないでしょうか。 *繰り返し処理はFileSearchを使おうかと思ったのですが、これは2007では使えないんですよね。 Excel2003と2007で使いたいので、どうしたものかと思っています。 ヒントだけでもご教示頂けますと助かります。

関連するQ&A

  • オートフィルタの一括解除について教えて下さい。

    オートフィルタの一括解除について教えて下さい。 以下のVBAをwebから見つけて、マクロに貼りつけて実行してみましたが、 オートフィルタは一括解除できますが、そのあともオートフィルタの機能は 残しておきたいのですが、どうすればできますか? Sub RemoveFiltersAllWorksheets()  Dim objWorkSheet As Worksheet  For Each objWorkSheet In Worksheets   objWorkSheet.AutoFilterMode = False  Next End Sub 宜しくお願いします。

  • 【Excelマクロ】特定のタイミングでオートフィルタ-を解除し、コンボボックスの表示項目を変更するには。

    お教えください。 まずは現状です。 シート1とシート2があります。 シート1上にはコンボボックスがあります。 コンボボックス内の項目を選択すると、シート1内でオートフィルタ-が実行され、選択項目をキーに絞り込まれます。 シート1とシート2はそれぞれ画面上のボタンで行き来できます。 シート2にはコンボボックスはありません。 ここで質問です。 (1)シート1でコンボボックスを利用し、オートフィルタ-を実行したまま状態で、(2)シート2にボタン(ないしは下のタブ)で移動します。(3)さらに再度ボタン(ないしは下のタブ)でシート1に戻るとします。 (1)~(3)の操作を行った時に、シート1のオートフィルタ-を解除し、コンボボックスの表示項目を「すべて表示」という項目に自動変更させる方法はありますでしょうか? 下記がボタン押下時のコードです。 一応ボタンで戻った時にオートフィルタ-は解除できるようになりました。下のタブだと変化なしです。 Sub ボタンA_Click() ' シート1を開く Sheets("シート1").Select End Sub Sub ボタンB_Click() If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData End If ' シート2を開く Sheets("シート2").Select End Sub 現状ではコンボボックスはそのままで、(タブで戻った時は)オートフィルタ-も変わりません。 どなたかご指南ください。 よろしくお願いします。

  • 【Excel】(続)複数シートのオートフィルターで一項目を選択する方法について

    いつもお世話になっております。 表記の件で、昨日マクロをご教示頂きました。 http://okwave.jp/qa4039109.html 当初はうまく作動していたのですが、 ネットから探してきましたオートフィルターを解除するマクロを 別に設けたところ、それが理由かどうかわかりませんが、 作動はするものの、「*」を選択せず、通常終了となります。 (エラーメッセージは出てきません) 理由がわかりましたら改善致したく、 ご教示の程宜しくお願いいたします。 ================================================ 教えて頂いたマクロ↓ For Each sheet_name In Worksheets sheet_name.Activate If FilterMode Then Selection.AutoFilter Field:=1, Criteria1:="~*" End If Next End Sub ================================================ 別に設けたフィルターを解除するマクロ↓ Dim W As Worksheet For Each W In Worksheets If W.FilterMode = True Then W.ShowAllData End If Next W End Sub

  • エクセルのマクロの質問です。

    オートフィルタを使ってデータを検索しているのですが、ファイルを閉じる時には自動的に「全て表示」にして閉じたいと思います。 試しに下記のマクロで実行してみたのですが、 Sub Auto_Close() ActiveSheet.ShowAllData End Sub フィルタで検索していれば自動的に「全て表示」になって問題なく閉じる事ができるのですが、最初から「全て表示」になっていると失敗し(当然ですよね)下記のエラーメッセージが出ます。 実行時エラー'1004': worksheetクラスのshowAllDataメソッドが失敗しました。 そこで、「全て表示」になっている時はそのまま閉じるを追加してマクロを完成させたいのですが、どうすればいいのでしょうか? 教えて下さい。お願いします。

  • フィルタの抽出を解除するコード

    エクセルのオートフィルタを解除するコードを調べてるのですが ActiveSheet.AutoFilterMode = False だとフィルタそのものが解除されてしまうのですが オートフィルタは解除せず、現在抽出されてるもののみ解除して全てのレコードを表示するコードを教えてください。 ActiveSheet.UsedRange.AutoFilter Field:=1 このようにもう一度その列を選択すればいいのですが このコードじゃなくて「ショーオールデータ」みたいなコードがあった気がするのですが探せません。 ご回答よろしくお願いします。

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

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

  • EXCELのオートフィルター解除でエラー発生

    EXCEL2000を使っています。 以前EXCEL97で表を作成してオートフィルターをかけたまま 終了し、EXCEL2000で開いて編集しようとしたところオートフィルターの解除をするとアプリケーションエラーが発生し、オートフィルターを解除できなくなってしまいました。 すべて表示を選んでも強制終了がかかってしまいます。 どうにかしてオートフィルターを解除して全てのデータを表示させたいのですが、どうすればいいのでしょうか? もうもとにもどすことはできないのでしょうか?

  • フィルタを解除してA1セルを選択<マクロ>

    EXCEL2002を使用しています。 以下のようなマクロで、フィルタを解除してA1のセルを選択するようにしたいと思いました。 Sub Macro1() ActiveSheet.ShowAllData Range("A1").Select End Sub フィルタがかかっている状態で実行すれば問題ないのですが、かかっていない状態で実行するとエラーになっていまいます。 フィルタがかかっていない状態の場合は単にA1を選択するようにしたいのですが、どのようにしたらよいでしょうか? よろしくお願いします。

  • なぜShowAllDataだとうまく行かないのでし

    なぜShowAllDataだとうまく行かないのでしょう? 「オートフィルタがかかってるなら解除する」 と言うコードを勉強しているのですが Sub a() If ActiveSheet.AutoFilterMode = True Then ActiveSheet.ShowAllData End If End Sub とすると、実行時エラー1004になります。 Sub b() If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False End If End Sub すると正常に動きます。 ActiveSheet.ShowAllData= True にしてもダメでした。

  • ShowAllDataのエラーを回避したい

    EXCELでオートフィルタを使った後に、データを全て表示させる為のコマンドボタンを作りました。 問題なのは、フィルタがかかっている状態でこのボタンを押すとデータが全表示されるのですが、全表示されている状態で押すと以下のエラーになってしまいます。   実行時エラー'1004':   WorkSheetクラスのShowAllDataメソッドが失敗しました。 コマンドボタンのプログラムは以下のとおりです。   Private Sub CommandButton2_Click()   ActiveSheet.ShowAllData   End Sub 不勉強なのは承知ですが、回避方法を教えて頂けないでしょうか。