|
VBA初心者です。ご教授ねがいます。
下記のようなデータがあるとします。(実際は2000行20列ほど)
A B C D E 1行
217,769 2行
月 日 借方CD 貸方CD 取引金額 残高 3
現金 4
現金 5
6
月日 借方CD 貸方CD 取引金額 残高 7
210301 現金 当座預金 50,000 8
210301 雑費 現金 423
210301 旅費 現金 200
210301 旅費 現金 150
210301 租税公課 現金 2,000
210301 通信費 現金 1,600
210301 旅費 現金 1,400
210301 雑費 現金 735
210310 現金 売掛金 27,470
210311 当座預金 雑収入 6,443
210311 受取手形 売掛金 100,000
210311 雑費 現金 600
210311 厚生費 現金 500
210311 厚生費 現金 1,360
210311 雑費 現金 13,099
210311 雑費 現金 4,200
210311 厚生費 現金 168
210312 雑費 現金 1,400
210312 雑費 現金 1,000
210312 雑費 現金 3,150
210312 雑費 現金 150
210312 雑費 現金 1,400
210330 雑費 現金 321 30行
Sub 借方2()
Dim g As Integer
Dim retu As Integer
Dim gyou As Integer '最終行
Dim kingaku As Integer
Dim karikata As Integer
Dim kasikata As Integer
With ActiveSheet.UsedRange
gyou = .Rows(.Rows.Count).Row
End With
kingaku = Application.Match("取引金額", Rows(3), False)
retu = Application.CountA(Rows(3))
Range(Cells(7, 1), Cells(gyou, retu)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range(Cells(3, 1), Cells(5, retu)), Unique:=False
karikata = Application.Match("借方CD", Rows(3), False)
For g = 8 To gyou
If Cells(g, karikata) = Cells(4, karikata) Then
Cells(g, kingaku + 1) = Cells(g, kingaku)
Else: Cells(g, kingaku + 1) = -Cells(g, kingaku)
End If
Next
End Sub
上記のマクロですと全ての行の残高列に値が挿入され、処理にかなり
時間がかかってしまいます。
オートフィルタ後の可視セルにのみ、残高行へのマクロを実行するには
どうしたらいいでしょうか?
他のシートに貼り付ける方法以外でありますでしょうか?
よろしくおねがいします。
|
|