SUM関数をマクロで使うかマクロでつくるか、マクロで考える力をつける22回

SUM関数をマクロで使うかマクロでつくるか、マクロで考える力をつける

マクロ講座 動画編 22回
マクロ講座

2022年度 エクセルマクロ講座入門編22回

SUM関数をマクロで使うかマクロでつくるか、マクロで考える力をつける

今回はマクロで考える力をつけるという意味で、 ワークシートで一番よく使う関数、サム関数をマクロで使う場合は、どうしたらいいかと言うその方法と、 そしてサム関数のような働きをするマクロを作るには、 どんなコードを書けばいいかという2通りの方法を考えてきます。 【コンテンツ】
1.SUM関数をマクロで使うには
2.SUM関数的なコードをマクロでつくるには


(サンプルファイルは、こちらです。 SUM関数をマクロで使うかマクロでつくるか、マクロで考える力をつける、サンプル22回

SUM関数をマクロで使うかマクロでつくるか、マクロで考える力をつける

ワークシート関数をVBAで使う例

  1. 毎日合計数を計算しなければならないシートがあって、そのデータの個数は日によって変わります。
    データの個数が不定期な場合があるという前提です。

    NAMAE1
  2. はじめに50個というデータの個数が分かっている時の合計の出し方を考えてみましょう。

    NAMAE2
  3. これはそのまま50個のデータが入っている、 B 1セルからB 51セルまでを合計しています。 ワークシートファンクションを使って合計した例です。

    NAMAE3
  4. 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
  5. データ数が毎回変わる場合のコードは、レンジ.End(xlDown)を使って、範囲を取得します。
    このコードですと、合計範囲が変わってもOKということになります。

    NAMAE4
  6. 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関数と同様の働きをするマクロのコード

  1. まず、データの長さをレンジ.End(xldown)を使って取得します。
    Lastrow =Range("B2", Range("B2").End(xlDown).Row
    取得したら、1つずつのセルの値をFor文を使って足していけばよいのです。

    NAMAE5
  2. 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
  3. 実行したところです。

    NAMAE6