VBAでオートフィルタのすべて選択を実行する方法

このQ&Aのポイント
  • エクセルで複数列にフィルタを設定しているときに、一括でフィルタを「すべて選択」にできるVBAマクロの作り方を教えてください。
  • フィルタリングの範囲を設定した状態で、全列に対して一括して「すべて選択」をチェック付けてデータを表示しなおすVBAの書き方を教えてください。
  • VBAを使用して、エクセルの複数列に設定されたフィルタを一括で「すべて選択」にする方法を教えてください。
回答を見る
  • ベストアンサー

オートフィルタ「すべて選択」をVBAでやりたい

エクセルで複数列にフィルタを設定しているときに 一括でフィルタを「すべて選択」にできるマクロを作りたいです。 例えばA1~F10にまでフィルタリングの範囲を設定したとします。 ただし、一部の行列(3行目とかD列とか)だけは非表示設定にします (フィルタリングではなく右クリックから非表示にします) さて、今、列以上に対して同時にフィルタリング抽出をかけた場合 全列に対して一括して「すべて選択」をチェック付けた状態にし 全データを表示しなおすにはどのようなVBAを書いたらよいでしょうか? ※元々フィルタリングを使わず非表示にしている個所は、  マクロを走らせた後も非表示のままになるようにするという前提で  ご回答くださいますようお願いします。

  • R958XX
  • お礼率75% (165/219)

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 以下の様なマクロでは如何でしょうか? Sub Macro() With ActiveSheet If TypeName(.AutoFilter) = "AutoFilter" Then If .AutoFilter.FilterMode Then ActiveSheet.ShowAllData End If End With End Sub

R958XX
質問者

お礼

遅くなってすみません‼︎ありがとうございます‼︎

関連するQ&A

  • エクセルVBA オートフィルタについて

    オートフィルタは2つまでしか条件が設定できません。 3つ以上設定する方法はないでしょうか?(OR条件です) オートフィルタの引数(Criteria)は2つしかありませんから、恐らく3つ以上の設定はできないと思っています。 そこで、オートフィルタを複数回設定し、使っていない列に特定の文字(例えば○など)を入れ、最後にこの○を条件にすることにより、実質的に3つ以上条件のフィルタリングを実現させたいと考えております。 そこでお聞きしたいのは、各条件でフィルタリングした時に、任意の列に○を入れる方法です。 例えば myRng.AutoFilter Field:=4, Criteria1:="=?UA*" でフィルタリングしたエリアの特定の列に○を入れるにはどのようなVBAになるのでしょうか? オートフィルタを使わず、ループで全行の条件を聞いて、○をつけることは可能ですが、行数が非常に多いので時間がかかってしまいます。 オートフィルタを使えばすばやく該当行が選択されますので、何とかこれを利用したいと思っています。何か良い方法は無いでしょうか? よろしくお願いします。

  • Excel VBAでオートフィルタで抽出したデータの一部だけ貼り付けるには

    いつもこのコーナーでは皆様にお世話になっております。以下のVBAマクロが組める方ご教示ください。 Sheet2にあるデータに複数条件でソートをかけ、ある数字(1から18まで)を入れたら、オートフィルタでE列のデータの選択部をSheet1のある部分に1行貼り付けるという作業です。以下のInputBoxに数字を入れるところからです。 (ソート後、どの数字を入れるか判断) ↓ InputBoxにある数字"○"(1から18まで)を入れる ↓ オートフィルタE列「"○-"で始まる」or「"-○"で終わる」 ↓ 抽出されたデータのE列(1列だけ)のデータ(上から17個分)を選択 ↓ 選択部をコピー ↓ Sheet1を選択。Sheet1の"K5"セルに行列を入れ替えて貼り付け という流れなのですが・・・ わかる方教えてください。よろしくお願いします。

  • エクセルのシート上でオートフィルターを使った際に関する、VBA上でのコードの記述について

    大変稚拙な質問の仕方をお許しください。 エクセルのシート上で、オートフィルターを使ってデータを抽出した前提で、VBAを使ってある作業をするためのマクロを組もうと思ったのですが、抽出されて表示された一番最初データの行を確定させるコードの記述が思い浮かびません。なにかいい方法はないでしょうか?よろしくお願いします。

  • オートフィルタ後のすべて表示について

    現在オートフィルタのオプションに*検索語*を入力し抽出しております。抽出した行の番号をクリックしライン(しるし?・影?)をつけます。そして、ツールバーにユーザー設定で作成した「すべて表示」をクリックします。 その際 抽出した行が表示される(検索した行まで戻る)時とされない時があります。 どのようにすれば、いつも検索された行が出る様になりますか? 宜しくお願いします。

  • オートフィルタ使用時のマクロによるセルの移動

    オートフィルタによって抽出した結果、表示されている行の内容を順々に参照していきたいのですが、 どうすればよいのでしょうか? 簡単なことのような気がするのですが・・・。 ActiveCell.Offset(1, 0).Select とすると、フィルタによって非表示になっている行にも移動してしまいます。 フィルタによって抽出する項目は複数の列を使用するので、マクロでは抽出条件を設定しません。 以上、お願いしまーす。

  • エクセル2010 オートフィルタ 不要な行

    『一定の範囲にオートフィルタを設定し、 任意の列でフィルタリングを掛けた結果上で、 垂直スクロールバーを一番下まで落とすと、 フィルタリングされた結果の最下行まで落ちる』 これを「正しい」現象として、今まで認識していましたが、 本日、以下のような現象が起きました。 最後の一文のみ、変わります。 『一定の範囲にオートフィルタを設定し、 任意の列でフィルタリングを掛けた結果上で、 垂直スクロールバーを一番下まで落とすと、 フィルタリングされた行より更に下(フィルタリング対象範囲外)の行まで余分に落ちる』 これは、何故でしょうか。 私の認識する「正しい」挙動に修復することは可能でしょうか。 余分なデータが認識されているのではと考え、 オートフィルタ範囲外の行列は一度削除し、 また『最後のセル』位置も、オートフィルタ範囲内の一番右下であると確認済みです。

  • オートフィルターで一つずつ抽出したものを....

    Bの行にオートフィルターをかけ、列の11で一つずつ抽出したものをコピーし、新規シートに貼り付けたいのですがどうやれば良いですか? 見出し『商品』として抽出されるもの全て新規シートにそれぞれコピーしたいです。 VBAの場合、初心者ですのでわかりやすくお願いします。 わかる方には面倒な事ばかりで申し訳ありませんが宜しくお願いします。 エクセル2010です。

  • オートフィルタオプションをVBAで指定したい

    表中に、このような列があるとします。 肩ロース100g 肩ロース500g ヒレ100g ヒレ250g ヒレ500g レバー100g レバー250g 他の列には注文日や個数、小計金額があるとします。 オートフィルタをかけて、フィルタオプションで「○○で始まる」を指定し、例えばレバーの行のみを手作業で抽出することはできます。 この動作を、フィルタオプションでの設定を経由せずに行えないものでしょうか? たとえば、別の列などに「肩ロース」「ヒレ」「レバー」が記載されていて、そのデータを元にオートフィルタの▼をクリックすると「肩ロース」「ヒレ」のように抽出条件データが表示される、というふうには出来ないものでしょうか? VBA等を使用しても構いません。 抽出項目は固定ですので、コード中に記述しても構いません。 動作が要望を満たせば、オートフィルタを使用しなくても構いません。 フォームウィンドウで抽出項目を指定し、その項目をCriteria等に設定してフィルタオプションでも構いません(この方法は自力で出来そうですが)。 良い方法があれば、お教え下さい。

  • マクロ オートフィルタで困っています。

    マクロ オートフィルタで困っています。 1列目と2列目からそれぞれ条件をフィルタで抽出し、抽出された行を削除するマクロを組んだのですが(下記)、Bの条件が表にない場合に2行目から下が全て削除されてしまいます。 元の表は毎週変わるため、抽出する条件があるかないかはその時次第です。 オートフィルタにこだわってはいませんが、その他の抽出方法もいまいち分からず……。 どのようにすればよいのか、教えていただけますでしょうか。 宜しくお願い致します。 <マクロ> Sub Macro() Selection.AutoFilter Field:=1, Criteria1:="A" Selection.AutoFilter Field:=2, Criteria1:="B", Operator:=xlAnd Dim gyou(1) As Long gyou(0) = 2 gyou(1) = Range("A1").CurrentRegion.Rows.Count Rows(gyou(0) & ":" & gyou(1)).Select Selection.Delete Shift:=xlUp End Sub

  • excel 2003 オートフィルタ!

    excel 2003で、オートフィルタがうまくいきません。 A列の2行目から、1~5までの数字がランダムに並んでいるとします。 A1セルをオートフィルタし、 条件を、オプション>3を含む で指定すると、3がフィルタされてほしいのですが 1つも抽出されません。 3で始まるもだめでした・・ フィルタで抽出するマクロをくんでいて 列は、20列以上あり、 列によって、文字や数値があります。 フォームで列を選び、検索文字を入力して Criteria1:="=*" & 検索文字 & "*", Operator:=xlAnd と言う感じでフィルタしています。 文字はできますが、数値ができないのは、なぜでしょうか・・・

専門家に質問してみよう