| 
    
     |  | ▼VBWASURETA さん: こんばんは。
 
 >多分ですが、nadataniさんは途中結果のマイナス値も必要で元を
 >書き換えたいということだと思います。
 なるほど・・・、
 VBWASURETA さんのコードも拝見しました。
 ということは、
 
 D列に「ABAB」と入力されている対応するA列の値は、0又は、正の数値である
 という条件なのですね!!
 
 私は、ここには、負の数が入る可能性もあり、その時は正の数に変換した後に
 計算する という仕様だと思っていました。
 
 0又は、正の数値である と言う条件なら・・、
 
 '====================================
 Sub 総合計1()
 Dim rng As Range
 Set rng = Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp))
 With rng
 
 Debug.Print "=if(offset(" & .Address & ",0,3)=""ABAB"",abs(" & .Address & ")," & _
 .Address & ")" & vbCrLf & _
 "という数式で初期化します"
 .Value = Evaluate("=if(offset(" & .Address & ",0,3)=""ABAB"",abs(" & .Address & ")," & _
 .Address & ")")
 Debug.Print "=if(offset(" & .Address & ",0,3)=""ABAB"",-1*(" & .Address & ")," & _
 .Address & ")" & vbCrLf & "こんな配列数式を評価します"
 
 .Value = Evaluate("=if(offset(" & .Address & ",0,3)=""ABAB"",-1*(" & .Address & ")," & _
 .Address & ")")
 End With
 If rng.Row > 6 Then
 Range("F4").Value = Application.Sum(rng)
 MsgBox "総合計は" & Format(Range("F4").Value, "#,##0")
 End If
 
 End Sub
 
 こんなコードで
 D列に「ABAB」と入力されている対応するA列の値は、0又は、負の数値に
 なると思います。
 
 |  |