| 
    
     |  | ▼miyakken さん: こんにちは。
 
 >  Range(Cells(7, 1), Cells(gyou, retu)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
 >  Range(Cells(3, 1), Cells(5, retu)), Unique:=False
 >
 
 >For g = 8 To gyou
 >Next
 
 これは、せっかくフィルタオプションで条件付けて行を抽出しているのに、
 > For g = 8 To gyou
 のLoop処理は、フィルタされた行に対してだけでなく
 すべての行について
 「借方CD」が「現金」なら +金額
 そうでなければ      −金額
 を「残高」欄に書き込んでいるから、効率わるいですよね?
 また、Else で 「借方CD」が「現金」でないすべての行が
 −金額
 となってしまいますけど、意図した処理ですか?
 
 ↓フィルタかけないサンプルです。
 
 Sub Try2()
 With Range("A7").CurrentRegion
 With Intersect(.Columns(5), .Columns(5).Offset(1))
 .ClearContents
 .Formula = _
 "=IF(B8=$B$4,D8,IF(C8=$B$4,-D8,""""))"
 .Value = .Value
 End With
 End With
 End Sub
 
 ※[$B$4] には「現金」
 
 |  |