• ベストアンサー

枠内の数字を自動計算させたい

初めて質問させていただきます。 多数ある枠内の数値を枠下に合計させたいのですが。。 決まった法則も無く、いつも1つ1つをオートSAMで合計させてますが、大変な手間がかかり困ってます。  マクロで、各それぞれ枠内の数値を合計し枠下へ計算せせたいのですが、どのようにすれば良いでしょうか? 質問初心者で上手く伝えられて無いと思いますが、宜しくお願い致します。

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

  • ベストアンサー
noname#99913
noname#99913
回答No.3

次のコードを試してみてください。縦に連続して数値が入っていれば、その下の空白セルに合計を求め、セルの色を黄色にします。元には戻せませんので、オリジナルをコピーしてから試してください。 Sub Macro1() Application.Calculation = xlManual Application.ScreenUpdating = False ActiveCell.SpecialCells(xlLastCell).Select lr = ActiveCell.Row lc = ActiveCell.Column For c = 1 To lc For r = 1 To lr + 1 Select Case Cells(r, c) Case Is <> "" s = s + Cells(r, c) Case "" If 0 < s Then Cells(r, c) = s Cells(r, c).Interior.ColorIndex = 6 '色を黄色にする s = 0 End If End Select Next r Next c Cells(1, 1).Select Application.ScreenUpdating = True Application.Calculation = xlAutomatic End Sub

19760205
質問者

お礼

出来ました!  本を見ながら色々試していましたが上手く出来ずに苦労してましたが 助かりました。 これだけヒントを頂ければ十分です。 後は、自分で勉強して改良してみようと思います。 ありがとうございました。

その他の回答 (2)

noname#99913
noname#99913
回答No.2

僭越ですが、表の構造を作りなおしたほうがいいと思います。後々の計算のしやすさを考慮して作るほうがいいと思います。 具体的に言うと、合計の欄が同じ行に来るようにするのです。   A  B  C 1 80 45 20 2 90 35 40 3 45 15 80 4 75 30  5    25 6 合計 合計 合計

19760205
質問者

補足

回答ありがとうございます。 実際に表の構成を変える事は出来ません。 プログラムでエクセルに変換して出力されるので・・ 列Bに二つの合計がありますが、実際には一つの列だけで数百の合計箇所があり、列Bと列Dの間も実際は数値が入っており,数百も間が開いているんです・・ 質問の仕方が悪かったみたいですね・・ マクロの自動記録でオートオートSUMを実行したのですが、同じ行数でないと正しく計算しませんでした.. 

noname#99913
noname#99913
回答No.1

どのような表なのか、具体的に書いてください。 単に飛び飛びに数値が入っているのなら、矩形のセル範囲指定で計算できます。 例:=SUM(A1:C6)

19760205
質問者

お礼

回答ありがとうございます。 写真の様な枠が多数存在し、普段は黄色のセルに合わせてオートSAMをクリックして、1つずつ合計を出してます。その作業をマクロで一度に行いたいのですが。。 

関連するQ&A