プロが教える店舗&オフィスのセキュリティ対策術

エクセルVBAに於いて質問させて頂きます。

タイトルにも書かせていただきましたが、

A列に行数可変のデータ(文字列)があり、
B列に行数可変のデータ(数字)があり、

A列の行数>=B列の行数の条件とき、

A列の最終行+2の位置のA列に文字で合計
A列の最終行+2の位置のB列にsumを表示する場合、
どのようにすれば出来ますでしょうか。

A列の最終行+2の位置のA列に文字で合計は
With Range("A3")
.End(xlDown).Offset(2, 0).Formula = "合計"
End With
でいけると思うのですが、

A列の最終行+2の位置のB列にsumを表示する場合どのようにすればいいのかわかりません。

ご教授のほどお願い致します。

A 回答 (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)"

などのように利用した方が,何かと便利な場合も多いので練習してみてください。
    • good
    • 0
この回答へのお礼

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

>end(xldown)で下に下ろすと,データがまだ記入されていない
>などの場合によく失敗します
upとdownの注意を見ていたのにすっかり忘れていました。

確かに、参考のコードの方が今後何かと便利に使えそうな気がしますので、こちらを使用させて頂きたいと思います。

お礼日時:2012/04/03 19:12

一例です。


With Range("A3").End(xlDown)
.Offset(2, 0).Value = "合計"
.Offset(2, 1).Formula = "=sum(B3:B" & .Row & ")"
End With
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/04/03 19:06

こんにちは!


色々やり方はあると思いますが・・・
一例です。

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/04/03 19:05

B3からA列の最終行までの合計だとすると



With Range("A3").End(xlDown).Offset(2, 0)
 .Formula = "合計"
 .Offset(, 1).Value = "=SUM(B3:B" & .Row - 2 & ")"
End With
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/04/03 19:04

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

このQ&Aを見た人はこんなQ&Aも見ています