| 
    
     |  | ▼ichinose さん: 今晩は。早速有難うございます。
 
 >元データを変えてしまうと、そりゃあ、一回目と2回目では
 >計算結果が違ってきますよね!!
 
 ご指摘いただいたコードで動かさしていただきました。
 いつも大きな数字をとらえるようです。
 マイナスが発生しないのですが・・・
 明日、再度会社にて時間をかけて見させていただき考えて見ます。
 
 >Sub 総合計1()
 >  Dim ans As Variant
 >  Dim i As Integer, rng As Range, pvl As Long
 >  pvl = Range("F4").Value
 >  Set rng = Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp))
 >  With rng
 >    MsgBox "=if(offset(" & .Address & ",0,3,1,1)=""ABAB"",-1*(" & .Address & ")," & _
 >         .Address & ")" & vbCrLf & "こんな配列数式を評価します"
 >
 >    ans = Evaluate("=if(offset(" & .Address & ",0,3)=""ABAB"",-1*(" & .Address & ")," & _
 >         .Address & ")")
 >    End With
 >  If rng.Row > 5 Then 'この5の意味がわかりませんが、そのままにしておきます
 
 これは6行目以降の意味なんですが・・・おかしいでしょうか?
 
 >    Range("F4").Value = Application.Sum(ans)
 >    MsgBox "総合計は" & Format(Range("F4").Value, "#,##0")
 >    End If
 >
 >End Sub
 
 |  |