• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:最終行に合計(最終行が列によって異なる場合))

エクセルVBAでA列とB列の条件に基づいて合計を表示する方法

このQ&Aのポイント
  • エクセルVBAを使用して、A列の行数がB列の行数以上の場合に、A列の最終行+2の位置に「合計」という文字を表示する方法を教えてください。
  • また、A列の最終行+2の位置のB列にSUM関数を使用して合計を表示する方法も教えてください。
  • お手数ですが、どちらの方法を使えば良いか教えていただけると助かります。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

一番シンプルには with range("A65536").end(xlup)  .offset(2).value = "合計"  .offset(2, 1).formular1c1 = "=SUM(R3C:R[-2]C)" end with などのようにします。 #注意 end(xldown)で下に下ろすと,データがまだ記入されていないなどの場合によく失敗します。 #参考 一回「最終行」を変数で受けてから dim r as long r = range("A65536").end(xlup).row + 2 cells(r, "A") = "合計" cells(r, "B").formular1c1 = "=SUM(R3C:R[-2]C)" などのように利用した方が,何かと便利な場合も多いので練習してみてください。

quindecillion
質問者

お礼

ご回答頂きましてありがとうございます。 思惑通りの事ができました。 >end(xldown)で下に下ろすと,データがまだ記入されていない >などの場合によく失敗します upとdownの注意を見ていたのにすっかり忘れていました。 確かに、参考のコードの方が今後何かと便利に使えそうな気がしますので、こちらを使用させて頂きたいと思います。

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

一例です。 With Range("A3").End(xlDown) .Offset(2, 0).Value = "合計" .Offset(2, 1).Formula = "=sum(B3:B" & .Row & ")" End With

quindecillion
質問者

お礼

ご回答頂きましてありがとうございます。 思惑通りの事ができました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 色々やり方はあると思いますが・・・ 一例です。 Sub test() Dim i As Long i = Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 1) = "合計" Then Range(Cells(i, 1), Cells(i, 2)).ClearContents End If With Cells(Rows.Count, 1).End(xlUp).Offset(2) .Value = "合計" .Offset(, 1) = WorksheetFunction.Sum(Columns("B")) End With End Sub ※ データが変更された場合も対応できるようにしてみました。 参考になりますかね?m(_ _)m

quindecillion
質問者

お礼

ご回答頂きましてありがとうございます。 思惑通りの事ができました。 確かに、色々な方法が有ることに気づかされました。 勉強になります。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

B3からA列の最終行までの合計だとすると With Range("A3").End(xlDown).Offset(2, 0)  .Formula = "合計"  .Offset(, 1).Value = "=SUM(B3:B" & .Row - 2 & ")" End With

quindecillion
質問者

お礼

ご回答頂きましてありがとうございます。 思惑通りの事ができました。

関連するQ&A

専門家に質問してみよう