|
こんな感じに作っていってください。
10月分の番号2で、当座預金の物をオートフィルタしたとして、これをマクロ記録すると「Macro1」になります。
これを明確に手直しをし、表示されている部分だけを選択するように手を加えると「Macro2」のようになります。
Sub Macro1()
Selection.AutoFilter Field:=1, Criteria1:=">=2005/10/1", Operator:=xlAnd _
, Criteria2:="<=2005/10/31"
Selection.AutoFilter Field:=2, Criteria1:="2"
Selection.AutoFilter Field:=4, Criteria1:="当座預金"
End Sub
Sub Macro2()
With Sheets(1)
.AutoFilterMode = False
With .Range("A1") '↓10/1〜10/31でも良いけど、
'実行した時の年号として扱われます。
.AutoFilter Field:=1, Criteria1:=">=2005/10/1", Operator:=xlAnd _
, Criteria2:="<=2005/10/31"
.AutoFilter Field:=2, Criteria1:="2"
.AutoFilter Field:=4, Criteria1:="当座預金"
End With
With .AutoFilter.Range
'選択してみました。
.Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Select
End With
End With
End Sub
これで、基本となる物が出来ました。
後は、指定した月の1日から月末の年号(yyyy/m/d)を割り出した物を変数に入れ、
コンボボックスより、番号、借方科目も変数に入れ、オートフィルタのコードに割り当ててやれば良いんです。
Dim 年 As Long, 月 As Long, 月初 As String
年 = Year(Now())
月 = Combo月.List(Combo月.ListIndex) '変数の型が数値型なので数字の場合、数値に変換してくれます。
月初 = 年 & "/" & 月 & "/1"
月末 = Format(DateSerial(年, 月 + 1, 1) - 1, "yyyy/m/d")
MsgBox 月初 & vbLf & 月末
これでも良いですよ。
Combo月.List = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")
|
|