| 
    
     |  | >ただ良くわからないのが、「Criteria1:=割引日」の部分で、 >割引日という変数はVariant型で、テキストボックスに「3/16」のような形で
 >入力してそれを格納し、その日付でオートフィルタをかける、
 
 日付の扱いには注意が必要です。
 
 まず
 割引日 = TextBox1.Value
 ですが、TextBox1.Value は、文字列を返すので
 変数 割引日 は
 Dim 割引日 As String
 とします。
 
 しかし、シート上のフィルタする対象が日付の場合、
 セルに入力されているのは、シリアル値といって日付型の値です。
 
 つまり 1900/1/1 を 1 として、 +1日ごとに +1 される
 連続したただの数値なのです。
 それを表示形式で yyyy/m/d のように表示しているだけなのです。
 
 なのでフィルタのキーワードは、シリアル値(日付型)で指定する必要があります。
 
 入力が 3/16 だと、 年 の指定がないので、対応できません。
 
 もし、入力を m/d でおこなうなら
 セルの日付を文字列にするしかありません。
 
 セルを日付型にしておくなら、「年」の入力が必要です。
 
 しかし、年 が固定なら
 
 Textbox1.text = "3/16"
 
 割引日 = cdate("2004" & Textbox1.text)
 
 にすれば出来るかと思います。
 
 cdate は、 日付型に変換する関数です。
 
 |  |