• ベストアンサー

Excelのフィルタ条件の付け方(VBA使用)

ご存知の方、教えてください。 フィルタの条件を、マクロ実行時に入力できる仕組みを作成したいと思うのですが、うまくいきません。 あるリストから、「売上日」フィールドを使って「○月○日」~「○月○日まで」という抽出を試みました。 inputboxを使えばいいような気がしたので、最初に hiduke1、hiduke2を変数指定しておき、 hiduke1 = inputbox("抽出開始日を入力してください) としました。 そして、フィルタの抽出条件に criteria1 := "<=hiduke1" と指定したところ、抽出結果が0件でした・・・。 さらに criteria1 := <= hiduke1 とダブルクォーテーションを取ったところ、「コンパイルエラー」が出てしまいました。 ・抽出条件に変数を使用したい。 ・criteria1,criteria2プロパティでは不等号をどのようにあらわすのか。 以上2点、よろしくお願いします。

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

  • ベストアンサー
noname#6356
noname#6356
回答No.1

以下のように記述したら動作しましたが、いかがでしょう。 Dim hiduke1 As String, hiduke2 As String Selection.AutoFilter hiduke1 = InputBox("日付1入力") hiduke2 = InputBox("日付2入力") Selection.AutoFilter Field:=1, Criteria1:=">" & hiduke1, Operator:=xlAnd, Criteria2:="<" & hiduke2 ちなみに日付入力は"2003/12/20"のように入力しました。

xxxgrigrixxx
質問者

お礼

すばやいご回答、ありがとうございました! できました!! ○Criteria1:=">" & hiduke1 ---ダブルクォーテーションの場所が間違っていたみたいです! 今後ともよろしくお願いします。

その他の回答 (1)

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.2

3点問題があると思うのですが、 ・ダブルクォーテーション内の変数が展開されていないのでは  "<=" & hiduke1 とか? ・入力された値をそのまま格納するだけでは、大小比較できないのでは  シリアル値にする一手間が必要? ・メソッドが不等号をサポートしていないのでは 少し違うやり方を考えられるべきでしょうね。

xxxgrigrixxx
質問者

お礼

早速のご回答ありがとうございました! No.1の方の回答でうまくいきました。 ダブルクォーテーションを付ける場所を間違っていたみたいです。 今後ともよろしくお願いします。

関連するQ&A