目次
SUMIF関数とVBA
Excel関数でとても便利なSUMIF関数。
SUMIF関数を使うと条件にあう数字の合計をまとめて計算できる。
たとえば、Aさん、Bさん、Cさんがいて、リンゴとバナナの全員の売り上げ表が月ごとにある場合、Aさんのリンゴの売上だけを知りたい場合などSUMIF関数が役立つ。
そんな便利なSUMIF関数をVBAで使う。VBAで使うメリットはフォルダーが何個もある場合に、繰り返し処理を利用してすべてのフォルダーに入っているExcelファイルを一つ一つ見て集計することが一瞬でワンクリックでできるところにある。
完成イメージ
B1セルに入っている文字(a)を探して、その右列にある数字の合計を表示する。

VBAコード
Dim i As Long
Dim arr(100) As Long
'B列のCells(1,2)の値を探す
Set 戻り値 = Range("B:B").Find(Cells(1, 2).Value)
場所 = 戻り値.Address
i = 0
'配列に値を割り当てる→合計をTotalに代入する
Do Until 戻り値 Is Nothing 'Do Until~Loopステートメントは、セルがNothingになるまで検索を繰り返す
arr(i) = Range(戻り値.Address, 戻り値.Address).Offset(0, 1).Value
Total = Total + arr(i)
i = i + 1
Set 戻り値 = Range("B:B").FindNext(戻り値)
If 場所 = 戻り値.Address Then '場所と戻り値が同じ値になるまで続ける(=最初に戻ってきたら終了)
Exit Do
End If
Loop
Cells(2, 2).Value = Total
End Sub
- FindNextを使って文字を探す
- Offsetでその文字の横にある数字を指示
- 数字を配列に記憶させる。
- 配列に記憶した値の合計をだす。
コメント