アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBA初心者です。

セルB6にB2からB5までの合計を求めるマクロを入力したいです。
subからどのように書けばいいんでしょうか?

書き方を教えてください。

「「マクロ」の足し算の式を教えてくださいm」の質問画像

A 回答 (5件)

こんばんは!



SUM関数が一番簡単ですが、どうしてもVBAでやりたいというコトであれば
ワークシート関数をそのまま使うのが手っ取り早いと思います。

Sub 合計() '←「合計」は好みのマクロ名に!
With Range("B6:E6") '←B6~E6セルの
.Formula = "=SUM(B2:B5)"
.Value = .Value
End With
End Sub

といったような感じで・・・

いかにもマクロらしいやり方といえば

Sub 合計2()
Dim i As Long, j As Long
For j = 2 To 5 '←B列~E列
For i = 2 To 5 '←2行目~5行目
Cells(6, j) = Cells(6, j) + Cells(i, j)
Next i
Next j
End Sub

のような方法もありますが、データ量が多い場合はなるべくループさせない方が良いと思います。

※ もちろん他にも色々書き方はあります。m(_ _)m
    • good
    • 4

シンプルに・・・・



[B6] = WorksheetFunction.Sum([B2:B5])
    • good
    • 3

No3です。

冗長なところがありました。

Range(c.Address).Value = WorksheetFunction.Sum(Range(Cells(2, c.Column), Cells(5, c.Column)))
↓に変更
c.Value = WorksheetFunction.Sum(Range(Cells(2, c.Column), Cells(5, c.Column)))
    • good
    • 0

B6に


=SUM(B2:B5)
とかで右方向に必要なだけコピーしたほうが簡単だと思いますが、マクロでしたら

Sub MySum()
Dim c As Range

For Each c In Range("B6:E6")
Range(c.Address).Value = WorksheetFunction.Sum(Range(Cells(2, c.Column), Cells(5, c.Column)))
Next
End Sub

などという手もあります。
    • good
    • 2

どちらでもいいです



sub Macro1()
Range("B6")=Range("B2")+Range("B3")+Range("B4")+Range("B5")
end sub

sub Macro2()
Dim i As Long
Range("B6")=0
For i=2 To 5
Range("B6")=Range("B6")+Cells(i,"B")
next i
end sub
    • good
    • 0

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

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


このQ&Aを見た人がよく見るQ&A