• ベストアンサー

VBA エクセル 合計

皆様、こんにちは。 それぞれの値が入っている会計シート(シートの形式は同じ)を一つの合計シートに合計しようとしていますが、うまくいきません。具体的に、数値の合計ができません。 例えば、ある項目に対して、シートAに100が入力され、シートBには230が入力されているとすれば、合計シートに100+230=330を入力したいです。なお、全ての会計シートは"Form"というエクセルシートにあり、その数をユーザが決めますので、検索しなければいけません。そして、合計シートは"Result"にあります。 以下のように書いてみましたが、間違っているようです。 Worksheets("Result").Activate Dim SR As Integer Dim SC As Integer 'SR is start row 'SC is start column SR = 6 SC = 2 Worksheets("Form").Activate Dim i As Integer i = 68 Do While 1 = 1 If Selection.Cells(i, 4).Value = "" Then Exit Do End If i = i + 49 Loop Sum = 0 Sum = Sum + Selection.Cells(i, 4) Worksheets("Result").Activate Cells(SR + 5, SC + 2) = Sum 詳しい方に教えていただければ非常に助かります。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 質問文だけでは良く分かりませんが、コードは分かりにくいです。なるべく文章で詳しく書いていただいたほうがよいです。 '------------------------------------------- Sub Test2()   Dim nR As Long   Dim nC As Long   Dim i As Long   Dim dSum As Double      nR = 6 'nR is start row number   nC = 2 'nC is start column number 'the Valuable of SR is out of inexplicit rules.   nR = nR +5   nC = nC +2   i = 68   With Worksheets("Form")     Do       If .Cells(i, 4).Value <> "" Then         dSum = .Cells(i, 4).Value       Else         Exit Do       End If       i = i + 49     Loop   End With      Worksheets("Result").Cells(nR, nC).Value = dSum End Sub Sum は、関数名ですから、出来れば、d =Double のdSum と変えたように良いと思います。

lyu05665
質問者

お礼

mt2008様、Wendy02様、ありがとうございました。 お蔭様で、コードにあった問題点を見つける事ができ、今はちゃんと動いています。 本当にありがとうございました。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

やりたい事が具体的になっていないので、思い違いをしているかも知れませんが、要するにこういうことでしょうか? 「Form」シートのD68から49行毎(D68、D117、D166……)のセルを見て行き、空白が現れるまでの値の合計を「Result」シートD11に表示したい。 で、あれば以下の様になります、提示されたソースをなるべくそのまま使用しています。元のソースとの違いを見てください。 Sub test() Dim SR As Integer Dim SC As Integer 'SR is start row 'SC is start column SR = 6 SC = 2 Worksheets("Form").Activate Dim i As Integer i = 68 Sum = 0 Do While 1 = 1  If Cells(i, 4).Value = "" Then   Exit Do  End If  Sum = Sum + Selection.Cells(i, 4)  i = i + 49 Loop Worksheets("Result").Activate Cells(SR + 5, SC + 2) = Sum End Sub また、Fromシート中のセル範囲のことを「会計シート」と呼んでいるようですが、Excelのシートと紛らわしく混乱の元です。

関連するQ&A