|    | 
     Buttonを押して 
A列の合計をさせたいのですが、 
4列目が「ABAB」のデータが 
あるときは、A列の数字をマイナスに変えA列の合計をさせたいのです。 
コード「総合計」は 
一回ボタンを押せば「マイナス処理をした合計」になり正解なのですが 
二回ボタンを押すと「マイナス*マイナス処理」→プラスになり最初の合計と 
後の合計に差がマイナス分の2倍が 
生じます。 
これを避ける方法を教えてください。 
自分なりにSelectCaseを使い 
コード「総合計2」を作成したのですが、SelectCaseの使い方が間違っている 
ためか 
「総合計1」と同じ結果になります。 
アドバイスをよろしくお願いします。 
 
’・・・・・・・・・・・・・・・・・・・・・・・・・ 
Sub 総合計1() 
 
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)) 
 For i = 7 To Cells(65536, 1).End(xlUp).Row 
  If Cells(i, 4) = "ABAB" Then 
    Cells(i, 4).Offset(, -3).Formula = Cells(i, 1) * -1 
  End If 
 Next i 
If rng.Row > 5 Then 
 Range("F4").Formula = _ 
   "=SUBTOTAL(9," & rng.Address & ")" 
 MsgBox "総合計は" & Format(Range("F4").Value, "#,##0") 
End If 
With Range("F4") 
 If .Value > pvl Then 
  Range("F4").Value = pvl  
 End If 
End With 
  
End Sub 
’・・・・・・・・・・・・・・・・ 
Sub 総合計2() 
 
Dim i As Integer, rng As Range, j As Integer, MyC As Integer 
 For j = 1 To 2 
    Select Case j 
      Case Is = 1: MyC = -1 
      Case Else: MyC = 1 
    End Select 
 Next j 
  
Set rng = Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp)) 
 For i = 7 To Cells(65536, 1).End(xlUp).Row 
  If Cells(i, 4) = "ABAB" Then 
    Cells(i, 4).Offset(, -3).Formula = Cells(i, 1) * MyC 
  End If 
 Next i 
  
If rng.Row > 5 Then 
 Range("F4").Formula = _ 
   "=SUBTOTAL(9," & rng.Address & ")" 
 MsgBox "総合計は" & Format(Range("F4").Value, "#,##0") 
End If 
 
End Sub 
   ’・・・・・・・・・・・・・・・ 
 | 
     
    
   |