SUM関数をマクロで使うかマクロでつくるか、マクロで考える力をつける
マクロ講座 動画編 22回
2022年度 エクセルマクロ講座入門編22回
SUM関数をマクロで使うかマクロでつくるか、マクロで考える力をつける
今回はマクロで考える力をつけるという意味で、
ワークシートで一番よく使う関数、サム関数をマクロで使う場合は、どうしたらいいかと言うその方法と、
そしてサム関数のような働きをするマクロを作るには、
どんなコードを書けばいいかという2通りの方法を考えてきます。
【コンテンツ】
1.SUM関数をマクロで使うには
2.SUM関数的なコードをマクロでつくるには
(サンプルファイルは、こちらです。 SUM関数をマクロで使うかマクロでつくるか、マクロで考える力をつける、サンプル22回)
SUM関数をマクロで使うかマクロでつくるか、マクロで考える力をつける
ワークシート関数をVBAで使う例
-
毎日合計数を計算しなければならないシートがあって、そのデータの個数は日によって変わります。
データの個数が不定期な場合があるという前提です。
-
はじめに50個というデータの個数が分かっている時の合計の出し方を考えてみましょう。
-
これはそのまま50個のデータが入っている、 B 1セルからB 51セルまでを合計しています。 ワークシートファンクションを使って合計した例です。
-
データ数が毎回変わる場合のコードは、レンジ.End(xlDown)を使って、範囲を取得します。
このコードですと、合計範囲が変わってもOKということになります。
Public Sub ワークシートファンクションSUM関数() Dim myRange As Range Dim Total As Long Set myRange = Worksheets("Sheet2").Range("B2", "B51") Total = WorksheetFunction.sum(myRange) Range("C1") = Total End Sub
Public Sub Sum関数3() Dim myRange As Range Dim Total As Long Set myRange = Worksheets("Sheet2").Range("H2", Range("H2").End(xlDown)) Range("I1") = WorksheetFunction.sum(myRange) End Sub
SUM関数と同様の働きをするマクロのコード
-
まず、データの長さをレンジ.End(xldown)を使って取得します。
Lastrow =Range("B2", Range("B2").End(xlDown).Row
取得したら、1つずつのセルの値をFor文を使って足していけばよいのです。 -
実行したところです。
Public Sub B列でサムつくってみる() Dim サム As Long lastRow = Worksheets("Sheet2").Range("B2").End(xlDown).Row For i = 2 To lastRow サム = サム + Cells(i, 2) Next i Cells(1, 3) = サム End Sub