- ベストアンサー
Excel AutoFilterメソッドでの月の範囲指定方法
- ExcelのVBAでAutoFilterメソッドを使用して特定の月のデータを抽出する方法について質問です。
- 月の範囲指定において、30日で終わる月や28日、29日で終わる月にも対応する方法を教えてください。
- 現在のコードでは月の範囲指定に困っており、どのように改善すればよいかアドバイスをお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一例として、DateSerial関数を使う方法があります。 Dim aa As String Dim i As Long Dim ii As Long Dim y As Long On Error GoTo errout aa = InputBox("抽出する取引先を入力してください") If aa = "" Then Exit Sub i = InputBox("抽出を開始する月は?※半角数字で入力してください") ii = InputBox("抽出を終了する月は?※半角数字で入力してください") y = Year(Date) '当年の場合。 Selection.AutoFilter Field:=2, Criteria1:=aa Selection.AutoFilter Field:=1, Criteria1:=">=" & DateSerial(y, i, 1), Operator:=xlAnd, _ Criteria2:="<=" & DateSerial(y, ii + 1, 0) Exit Sub errout: MsgBox Err.Number & "::" & Err.Description
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の表題がおかしい。 月指定の月末日の取得のもんだい。 何月を指定しないと、月末日は決らないだろう。 ーーー Sub test01() ym = InputBox("年月yyyymm") y = Mid(ym, 1, 4) m = Mid(ym, 5, 2) lmd = Day(DateSerial(y, m + 1, 1) - 1) MsgBox lmd End Sub ーー 上記は常套手段で、目新しい物ではない。 エクセル日付シリアル値の有難いところ。