- ベストアンサー
枠内の数字を自動計算させたい
- みんなの回答 (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
その他の回答 (2)
僭越ですが、表の構造を作りなおしたほうがいいと思います。後々の計算のしやすさを考慮して作るほうがいいと思います。 具体的に言うと、合計の欄が同じ行に来るようにするのです。 A B C 1 80 45 20 2 90 35 40 3 45 15 80 4 75 30 5 25 6 合計 合計 合計
補足
回答ありがとうございます。 実際に表の構成を変える事は出来ません。 プログラムでエクセルに変換して出力されるので・・ 列Bに二つの合計がありますが、実際には一つの列だけで数百の合計箇所があり、列Bと列Dの間も実際は数値が入っており,数百も間が開いているんです・・ 質問の仕方が悪かったみたいですね・・ マクロの自動記録でオートオートSUMを実行したのですが、同じ行数でないと正しく計算しませんでした..
どのような表なのか、具体的に書いてください。 単に飛び飛びに数値が入っているのなら、矩形のセル範囲指定で計算できます。 例:=SUM(A1:C6)
お礼
回答ありがとうございます。 写真の様な枠が多数存在し、普段は黄色のセルに合わせてオートSAMをクリックして、1つずつ合計を出してます。その作業をマクロで一度に行いたいのですが。。
お礼
出来ました! 本を見ながら色々試していましたが上手く出来ずに苦労してましたが 助かりました。 これだけヒントを頂ければ十分です。 後は、自分で勉強して改良してみようと思います。 ありがとうございました。