• ベストアンサー

日付をオートフィルタするVBAを教えて下さい。

Sub 日付を検索() Dim hiduke As Date hiduke = Application.InputBox(prompt:="日付を入力", Title:="日付を検索", Type:=2) Range("D3").Select Selection.AutoFilter Selection.AutoFilter Field:=4, Criteria1:=hiduke End Sub この構文が間違っているようで、日付を 10/27 とか入れても 10/27が選択されません。 4列目(D列)が日付の列です。 何にも表示が出ません。 正しい構文を教えて下さい。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

日付の表示形式によるのかも? 表示形式が"m/d"(10/1とか)なら、 Criteria1:=Format(hiduke, "m/d") にしてみてはどうでしょうか?

noname#52753
質問者

お礼

やれました。感動です。 ありがとうございました。 仕事がはかどりそうです。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 その問題は、Excelのバージョンに影響をされるひとつだったと思います。Date型に代入して、そこで検索するのですから、コードの理屈としては、私は、間違っていないと思います。 私なりに以前考えた理由は、Excelのワークシートからすると、それに合った表示形式で、検索値が、自動変換され検索するのですが、VBAは、そういう処理がなされていないからだと思いました。 他にも、「\」記号が入ったオートフィルタもうまくいかなかった覚えがあります。 こちらのExcel2003 では、以下のような構文でできます。しかし、下位バージョンでは分かりません。 Sub 日付を検索R() Dim hiduke As Variant Dim fmt As String hiduke = Application.InputBox(prompt:="日付を入力", Title:="日付を検索", Type:=2) With Range("D3")   fmt = .Offset(1).NumberFormatLocal   hiduke = Format(hiduke, fmt)   '.AutoFilter   .AutoFilter Field:=4, Criteria1:=hiduke End With End Sub

noname#52753
質問者

お礼

くわしくありがとうございます。

関連するQ&A