excelのvbaについてです。


 日付   取引先   金額
------------------------------
3月20日  ○○様  ¥20,000
4月23日  △△様  ¥19,000
5月23日  ○○様  ¥5,000
・・・・・
・・・
・・

というような表から、INPUTBOXで入力した抽出条件でデータを取り出したいと思っています。

Dim aa As String, i As Integer
aa = InputBox("抽出する取引先を入力してください")
i = InputBox("抽出を開始する月は?※半角数字で入力してください")
ii = InputBox("抽出を終了する月は?※半角数字で入力してください")
Selection.AutoFilter field:=1, Criteria1:=aa
Selection.AutoFilter field:=2, Criteria1:=">=" & i & "月1日", Operator:=xlAnd, Criteria2:="<=" & ii & "月31日"
End Sub

としたのですが、月によって30日で終わる月もあれば、28日、29日で終わる月もありますよね。
どんな月の範囲指定をしても、ちゃんと抽出できるようにするにはどうしたらいいでしょうか?

諸先輩方、どうぞよろしくお願いします。

A 回答 (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
    • good
    • 0

質問の表題がおかしい。


月指定の月末日の取得のもんだい。
何月を指定しないと、月末日は決らないだろう。
ーーー
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
ーー
上記は常套手段で、目新しい物ではない。
エクセル日付シリアル値の有難いところ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報