• ベストアンサー

オートフィルタの項目設定

オートフィルタにてあるセルに値(又は文字列)を入力すると、それに対応したフィルタをかけられるようにするにはどうしたらよいですか? Criteria1:= Range"A1".Value ではエラーが出ます。 マクロは記録のみでしか作成したことがない初心者ですがよろしくお願いします

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

  • ベストアンサー
  • pulsa
  • ベストアンサー率57% (34/59)
回答No.1

Criteria1:= Range("A1").Value ってしてみてください ただ、どこをフィルタリングしようとしてるのか判らないのでなんともですが、通常1行目は見出しに使っているので、このコードだと 見出しと同じ物を抽出する って意味になり、あんまりやらない動作ではあります 質問する時は、関連するコードを全部載せた方が、原因の特定に繋がる事が多いですよ 今回の場合だと、せめて Selection.AutoFilter Field:=1, Criteria1:= Range"A1".Value くらいは無いと、難しい 経験的に、これでも足りない事が多いですがね 全部と言っても、もちろん限度はあるし、あんまり関係ない所をずらずら載せられても困るんですが、であるからこそ、各メソッドをシンプルにする必要があるんです まぁ、そうは言っても意外と難しいんですけどね コレばっかりは慣れと本人のセンスなんで エラーが出た時は、その内容も一緒に投稿すると、原因を特定するのに繋がったりします 大体の場合、エラーの画面は[Ctrl+C]で文字がコピーできます ま、今回はそこまでの内容ではなさそうですが…^^; いつまでもこんな簡単な所につまずいている訳はないので、もう少し内容が込み入ってきた時、上の事が重要になってきます がんばって!

Alshark
質問者

お礼

分かり辛い文面ですいませんでした 簡略化するために最低限の部分しか記載しなかったので(汗) でも構文間違いだと言うのが分かりました sheets("○○").を設定しなかったために参照できなかったみたいです うまく動きました 内容は○月、○日のデータをオートフィルタで抽出しようとして エラーばかり出て理解できなかったので、力技でIF文にて月フィルタ(12個分)日フィルタ(31個分)を文字列で設定していました でもこれでマクロもすっきりしました。 ありがとうございました。 今後はもっと高度な質問ができるよう頑張ります。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

マクロの記録を少し改変して Sub Macro1() Range("A1:A100").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:=Range("B1") End Sub ーー A列にデータが入っています。 B1セルに抜き出すデータが入っています 例  A列   B列 氏名 近藤 大下 青木 木村 久保 近藤 ーーー この質問は 上記ではA列のデータ範囲を相対化したいのか B1のセルの値(フィルタして出したい値、クライテリア)を相対化したいのか判らないように思うが。

Alshark
質問者

お礼

分かり辛い文面ですいませんでした でも構文間違いだと言うのが分かりました 以前はSelection.AutoFilter Field:=1, Criteria1:=Range("B1").Value でエラーばかり出ていて sheets("○○").を設定しなかったために参照できなかったみたいです うまく動きました 内容は○月、○日のデータをオートフィルタで抽出しようとして エラーばかり出て理解できなかったので、力技でIF文にて月フィルタ(12個分)日フィルタ(31個分)を文字列で設定していました でもこれでマクロもすっきりしました。 ありがとうございました。 今後はもっと高度な質問ができるよう頑張ります。

関連するQ&A

  • excel 2003 オートフィルタ!

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

  • オートフィルタのマクロについて

    オートフィルタのマクロを組もうとしているのですが、フィルタ条件に別シートのセルの値を入れたいのですが、そこがどうもうまくいきません。 作成したマクロは以下の通りです。 Sub 累計計算マクロ() Dim aRange As Range, bRange As Range, i As Date Set aRange = Sheets("累計").Range("B1") Set bRange = Sheets("累計").Range("B2") i = aRange.Value Sheets("クイーンエステート").Activate Range("A13:L13").Select Selection.AutoFilter Selection.AutoFilter Field:=2, Criteria1:="<=i", Operator:=xlAnd End Sub どなたか助けてください! 宜しくお願い致します。

  • オートフィルターの使い方

    マクロでオートフィルタを使おうと思っているのです。 作成したリストの中で、日付でフィルタしようと思い 下記を作成してみましたがうまくいきません。 Worksheets("シート名").Range("A2").AutoFilter Field:=30, Criteria1:="<=2004/9/30", Operator:=xlAnd = 1, Criterial2:=">=2004/9/1" 条件と致しましては任意の期間(例:2004/9/1~2004/9/30)を抽出条件としたいのですが・・・ 又、セルには空白も存在します。 宜しくお願いいたします。

  • エクセルのオートフィルターをマクロで記録

    エクセルのマクロ記録でオートフィルター機能を記録したのですが フィルターのボタンを押して各項目を選択するのに (すべて) (トップテン) (オプション) (空白セル) (空白以外のセル)があるのですが (空白セル)を選択すると , Criteria1:"=" (空白以外のセル)だと , Criteria1:"<>" のようにマクロ記録されます (すべて)を選択した場合 , Criteria1:が記録されないのですが これをあえて構文として書くと、どのようになるのでしょう 他のマクロで引用したいので困っています よろしくお願いいたします

  • EXcelオートフィルタのオプション設定で条件として変数をマクロで組むには?

     オートフィルタ機能を使い、指定期間内のデータを抽出するようにマクロを組みたい。指定期間が一定ではないので変数を設定したいのですがうまくいきません。下記はマニュアルで入力したものをマクロに記録したものです。指定期間は他のBookのセルに入力画面として設けてあります。例えばBook2/B1(開始)~B2(終了)。 Range("A1").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:=">=2005/8/21", Operator:=xlAnd _ , Criteria2:="<=2005/9/20" Range("C1").Select End Sub

  • EXCELマクロでワイルドカードを使ったオートフィルタ処理の方法がわからない

    エクセルのマクロがうまく動かないので、教えてください。 あるセルにカーソルをおいて、そのセルの文字を含んだ文字で(ワイルドカードを使って)オートフィルタ処理をしたいのですが、 「構文エラー」となってしまいます。 Dim num As String num = ActiveCell.Value Sheets("リスト").Select Columns("AN:AN").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="=*"&num&"*", Operator:=xlAnd ActiveWindow.ScrollColumn = 2 Range("A1").Select Criteria1:="=*"&num&"*"の部分で 「構文エラー」になっているようなのですが… お分かりになる方教えてください。よろしくお願いします。

  • オートフィルタ 検索

    オートフィルタで三つの条件でデータを抽出するマクロを作っています 以下のような記述は誤りでしょうか? ActiveSheet.Range("$B$2:$D$114").AutoFilter Field:=1, Criteria1:="=02722*" _ , Operator:=xlOr, Criteria2:="=02729*" _ , Operator:=xlOr, Criteria3:="=02737*" 表はこのようなものです ↓キー 番号      名前      値 027**     **     * 027**     **     * 027**     **     * ・ ・ ・

  • オートフィルタをかけるマクロ

    A12からA50に表示されている内容でB列にオートフィルタをかけ、印刷をする というマクロですが、 Selection.Autofilter field:=2, Criteria1:=Range("A12") Activesheet.Printout を39回コピーし、"A12"の部分を"A13"............"A50"に変えていきました。 本当はもっとスッキリできると思うのですが、そこがまだよくわかりませんので どなたか教えていただけないでしょうか。 A列は必ず50までデータがあるとは限りません。 エクセル2003使用の初心者です。 よろしくお願いします。

  • excel2000のオートフィルタマクロ

    マクロ記録の簡単な編集程度の知識しかありません。 C1に入っている文字列を、完全一致ではなく、”含む”状態でオートフィルタしたいのですが、 どの様に記述すればいいですか? 現状、下記のようになっています。 Selection.AutoFilter Field:=2, Criteria1:="C1", Operator:=xlAnd よろしくお願いいたします。

  • エクセル オートフィルタの抽出条件をデフォルト設定したい

    エクセルでQ&Aを作成しています。 A列にQuestion B列にAnswer を入力してだけのシンプルな物です。 それぞれの列にオートフィルタをかけ、任意のキーワードを含むQ&Aだけを抽出できるようにしてあります。 実際の作業手順としては、下記の通りです。  1.オートフィルタの▼ボタンをクリック  2.「オプション」をクリック  3.任意のキーワードを入力  4.キーワードの右側のドロップダウンメニューで「を含む」を選択  5.「OK」ボタンをクリック この手順の「4」の部分をデフォルトで設定しておくようにはできないでしょうか? (オートフィルタオプションウインドウを開くと「を含む」があらかじめ選択された状態になっている) この手順1.2.4までをマクロで記録して、マクロ実行ボタンをクリックすれば、オートフィルタオプションのウインドウが開いて任意のキーワードを入力する仕組みを作りたいと思っています。 しかし、オートフィルタオプションのウインドウを開いた状態のまま、マクロの記録を停止することができず、思い通りになりません。 自動的に記録されたマクロを見てみると 「Selection.AutoFilter Field:=1, Criteria1:="=**", Operator:=xlAnd」となっています。 この文のどこかを書き換えることなどで対応できないでしょうか? または、他によい方法があれば教えてください。 よろしくお願いします。

専門家に質問してみよう