たびたび申し訳ありません。

繰り返し処理の中でSUM関数を使うときに、引数をA1のような書き方ではなくて(1,1)のようにしたいのですが、そうするとエラーになってしまいます。
これはVBAの問題ではなくて単にSUM関数の引数を(1,1)のように書きたいときにはどうすればいいかという問題だと思いますが。
=SUM((30*I-18,5):(30*I+8,5))
ではだめなんです。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>これはVBAの問題ではなくて単にSUM関数の引数を(1,1)のように書きたいときにはどうすればいいかという問題だと思いますが。



VBAの問題ではないというのは、良く分かりません。
ワークシートとVBAとは、その文法を同じにすることはできません。
VBAとの共有点はあっても、ワークシートとVBAは仕組み自体が根本的に違います。
まず、VBAの入門書などで確認することをお勧めします。

>=SUM((30*I-18,5):(30*I+8,5))
ワークシート関数の引数に、Rangeオブジェクトを入れるのでしたら、VBAでは、A1ではなく、Range("A1")とするか、Cells(1,1)とします。
Sum関数自体は、SUM(1,1) とは引数を取ることができますが、答えは、2 になります。

例を2つ挙げておきますので、参考にしてみてください。
Sub test()
LastNum = 5
For I = 1 To LastNum
 Cells(I, 1).Value = WorksheetFunction.Sum(Range(Cells(30 * I - 18, 5), Cells(30 * I + 8, 5)))
Next I
End Sub
'----------------------
Sub test2()
LastNum = 5
For I = 1 To LastNum
 Cells(I, 1).Value = Evaluate("=Sum(E" & (30 * I - 18) & ":E" & (30 * I + 8) & ")")
Next I
End Sub
    • good
    • 0

E39 に =SUM(E12:E38)


E69 に =SUM(E42:E68)
   ・
   ・

のようにしたいって事?

Sub aaa()
With ActiveSheet
 For i = 1 To 10
  .Cells(30 * i + 9, 5) = _
    "=sum(" & .Range(.Cells(30 * i - 18, 5), _
    .Cells(30 * i + 8, 5)).Address(0, 0) & ")"
 Next i
End With
End Sub
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング