ExcelマクロVBAでセルの入力値に応じてオートフィルターを設定する方法

このQ&Aのポイント
  • ExcelのマクロVBAを使用して、セルの入力値に応じてオートフィルターを設定する方法について質問です。例えば、特定のセル(例えばA1)に入力規則でa~dの値を設定し、その値に応じてオートフィルターの条件を変えることは可能でしょうか?これにより、複数の条件に対応する一つのマクロを作成することができます。
  • ExcelのマクロVBAでセルの入力値を参照してオートフィルターの条件を設定する方法について教えてください。たとえば、セルA1に入力された値に応じて、オートフィルターの条件を変更したい場合はどうすればいいのでしょうか?この方法を知りたいと思っています。
  • ExcelのマクロVBAで、特定のセルの入力値に応じてオートフィルターの条件を設定する方法について教えてください。具体的には、セルA1に入力された値がaの場合にはオートフィルターの条件を変更し、bの場合には別の条件を設定するというような処理をしたいと考えています。このような処理を実現するためのマクロコードを教えてください。
回答を見る
  • ベストアンサー

EXCELマクロVBAについての質問です。

たとえば、 Selection.AutoFilter Field:=1, Criteria1:="a" オートフィルターで"a"を選んでいるわけですが どこかのセル(例えばA1)に入力規則でa~dを設定して、その選んだ文字に応じて 上記のコードの"a"を変更するのは可能でしょうか? もっとわかりやすく言うと、A1に入力されている文字を参照するようなマクロです。 今までは上記のa~d毎でマクロコードを作成していたのですが、 質問事項が可能であれば、マクロコードは一つで済みます。 理解できる文章になっていますでしょうか? 誰かお詳しい方、教えて下さい。 意図に沿っていれば代替策でも結構です。よろしくお願いします。

noname#148854
noname#148854

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

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

入力規則で入れようが、手で入力しようが、子p-貼り付け仕様が、A1の値はRange("A1").Valueです。 だから  Criteria1:=Range("A1").Valueでやってごらん。 質問など、しないで、まずやってみること。

その他の回答 (1)

回答No.2

Selection.AutoFilter field:=1, Criteria1:=Cells(1, 1).Value

関連するQ&A

  • エクセルのマクロ

    勉強を始めたばかりで処理を繰り返す項目をいろいろ調べたのですがうまくいきません。教えてください。 オートフィルタで3列目を”東京 ”という文字でを抽出したあとである処理をし、その後同じ列で今度は”神奈川 ”を選び同様の処理をする。また今度は 次は"千葉”と繰り返したいのです。 マクロを見てみると Selection.AutoFilter Field:=3, Criteria1:="1"    何らかの処理 Selection.AutoFilter Field:=3, Criteria1:="2"    何らかの処理 Selection.AutoFilter Field:=3, Criteria1:="3"    何らかの処理 となっています。こうなると必要な数だけ これをコピーしないといけないので ループのようなもので下記の■の部分の 数字を1.2.3.~と処理を繰り返す毎に 増やして生きたいのです。 そしてリストの最後にきたらおしまいにしたいのですが・・・・。FOR NEXT とか DO LOOP とか 試しましたが、私の幼稚な知識ではうまく動いてくれませんでした。すみませんがよろしくお願いします。 Selection.AutoFilter Field:=3, Criteria1:="■" 処理

  • エクセルのマクロでフィルタを判別するマクロ

    いつもお世話になっております。 エクセル2000で オートフィルタを使用した表があります。 やりたいことは以下の通りです。 AutoFilter Field:=1(一番左側のフィルタ)が、 なんらかのフィルタリングがされている (フィルタの▼が青い状態)のときはそのままで、 なにもフィルタリングされていない (フィルタの▼が黒い状態)のときは Selection.AutoFilter Field:=1, Criteria1:="<>#N/A", Operator:=xlAn を実行させたいのです。 どのようなマクロを記述すればいいか ご教示ください。 よろしくお願いします。

  • エクセルVBAの一時停止後、 入力し再実行したい

    エクセルVBAでオートフィルター実行後に一時停止し、オートフィルターで選んだエクセルシート上のセルに直接入力た後、マクロを再実行させたい。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/3/2 '製品コードより枠番を選ぶ Selection.AutoFilter Field:=12, Criteria1:="=?????1*", Operator:=xlAnd 'ここで一時停止し、エクセルシート上で入力した後、次の行を実行したい Selection.AutoFilter Field:=12, Criteria1:="=?????2*", Operator:=xlAnd 'ここで一時停止し、エクセルシート上で入力した後、次の行を実行したい Range("A1").Select End Sub

  • 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

  • 【エクセル マクロ】オートフィルター後の行削除

    Excel2003を使用しています。 オートフィルターを利用した作業をマクロの記録で処理していて 抽出されたデータを行ごと削除しているのですが Selection.AutoFilter Field:=1, Criteria1:="仕入先コード" Rows("4:2102").Select Selection.Delete shift:=xlUp Selection.AutoFilter Field:=2, Criteria1:="仕入先合計" Rows("7:2008").Select Selection.Delete shift:=xlUp …と、上記のような行番号で指定されてしまい 毎月データ数が増減するので、うまく処理出来ません。 (データは、テキストファイルからエクセルに取り込んでいます) 過去の例で近いものがあれば記述の中に取り込んでみましたが… これもうまくいきませんでした。 毎月変わるデータ数に対応できるマクロの記述を教えて下さい。 よろしくお願いします。

  • マクロ AutoFilter・・Criterial

    ActiveSheet.Range("$A$2:$P$5000").AutoFilter Field:=9, Criteria1:="1" というオートフィルターのマクロがあります。 Criteria1:= の次にある ”1” はどういう意味ですか?

  • 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&"*"の部分で 「構文エラー」になっているようなのですが… お分かりになる方教えてください。よろしくお願いします。

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

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

  • Excelのフィルターなんですが

    A列 B列 1 りんご 2 みかん 3 すいか 1 りんご 2 みかん 3 すいか 1 りんご 2 みかん 3 すいか 上記の表があり、フィルターで1を選ぶ場合に自動マクロで記録すると Selection.AutoFilter Field:=1, Criteria1:="1" となります。これをC3に入力した数字を参照したいので Selection.AutoFilter Field:=1, Criteria1:=cells(1,3) としてみたのですが、うまくいきませんでした 下記のように選択されるようにしたいのですが、どうすればよいのでしょうか? A列 B列 1 りんご 1 りんご 1 りんご

  • エクセルVBA

    日誌を作成してて、月毎に印刷しなければならないために下記のようなコードを自動マクロで作成しました。 Sub 並び替え4月() 並び替え4月 Selection.AutoFilter Field:=2, Criteria1:=">=2007/4/1", Operator:=xlAnd, _ Criteria2:="<=2007/4/30" Application.Run "日誌.xls!登録" End Sub Sub 並び替え5月() 並び替え5月 Selection.AutoFilter Field:=2, Criteria1:=">=2007/5/1", Operator:=xlAnd, _ Criteria2:="<=2007/5/31" Application.Run "日誌.xls!登録" End Sub これで、1年分作ったのですが、2008年4月からに応用できません。任意のセルに年度を入力するだけでコードが置き換わるようにするにはどうすれば良いのか見当もつかない状況です。ネットで色々調べてみたんですが、参考になる例題も見つけられず困っております。どうぞ、宜しくお願いいたします。