- ベストアンサー
-の計算について
Sum関数を使用して、あるセルの範囲の合計を出したいのですが、 その合計よりhiku4という変数の値分を引きたいのです。 変数が"+"の場合はOKなのですが hiku4に"-"の値が入ってきた場合、エラーになってしまいます。 どうすればよいのでしょうか? for i= 1 to4 Range("L" & i).Formula = "=SUM(L" & i + 1 & ":L" & lastgyou & ") " & -hiku4 next
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Range("L" & i).Formula = "=SUM(L" & i + 1 & ":L" & lastgyou & ") " & -hiku4 を Range("L" & i).Formula = "=SUM(L" & i + 1 & ":L" & lastgyou & ") -" & hiku4 とすればいかがでしょうか。
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 A1 方式で考えるので、ループが必要になるのですが、そのコードには、ループは必要ないのでは?単に、一行だけで済むはずです。(ただし、式としては、奇妙な式ですけれどね。) Dim i As Integer Dim j As Integer Dim lastgyou As Long Const hiku4 As Integer = 6 lastgyou = 10 '実際は、Endプロパティで、最終行をとるのだと思いますが。 i = 1 : j = 4 Range("L" & i).Resize(j).FormulaLocal = "=SUM(L" & i + 1 & ":$L$" & lastgyou & ")-" & hiku4
- venzou
- ベストアンサー率71% (311/435)
#3です。間違いました。訂正します。 For i = 1 To 4 If hiku4 > 0 Then Range("L" & i).Formula = "=SUM(L" & i + 1 & ":L" & lastgyou & ") " & -hiku4 Else Range("L" & i).Formula = "=SUM(L" & i + 1 & ":L" & lastgyou & ") +" & -hiku4 End If Next
- venzou
- ベストアンサー率71% (311/435)
hiku4の内容がプラスの場合とマイナスの場合があると言う事ですか? If文で分けるしかないと思います。 For i = 1 To 4 If hiku4 >= 0 Then Range("L" & i).Formula = "=SUM(L" & i + 1 & ":L" & lastgyou & ") " & -hiku4 Else Range("L" & i).Formula = "=SUM(L" & i + 1 & ":L" & lastgyou & ") +" & -hiku4 End If Next
- imogasi
- ベストアンサー率27% (4737/17069)
少し例を簡略化してやってみました。 Sub test01() i = 1 lastgyou = 5 hiku4 = 4 '-- MsgBox "=SUM(L" & i + 1 & ":L" & lastgyou & ") -" & hiku4 Range("L" & i).Formula = "=SUM(L" & i + 1 & ":L" & lastgyou & ") -" & hiku4 End Sub L2:L5 に 2 3 4 6 で L1は実行後11になりました。 どうでしょうか。 後は質問にあわせて修正してください。
お礼
回答ありがとうございます。上手く動きました。