• ベストアンサー

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

オートフィルタにてあるセルに値(又は文字列)を入力すると、それに対応したフィルタをかけられるようにするにはどうしたらよいですか? 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/17069)
回答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個分)を文字列で設定していました でもこれでマクロもすっきりしました。 ありがとうございました。 今後はもっと高度な質問ができるよう頑張ります。