久しぶりのExcelVBAの記事です。
Excelって縦方向に要素を見つけて合計する事は出来ますが
横方向となると途端に難しくなります。
今回は、横方向に要素を見つけその横に記載されている数字を合計するようなマクロを作成したので
備忘録がてら記載しておきます。
横方向に要素を見つけて合計するマクロ
今回実施したい内容は以下のような場合です。
こんな感じで、「会費」という要素を見つけて、その右横に書いてある数字の合計値をM列へ出力するという事例を考えます。
VBAコードはこちらです。
Sub 要素を見つける()
Dim i As Long, n As Long, tmp As Long
Dim fnd As Range
Dim str As String
'合計記載列
str = "M"
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set fnd = Rows(i).Find("会費", LookAt:=xlWhole)
If Not fnd Is Nothing Then
tmp = fnd.Column
n = 0
Do
n = n + fnd.Offset(, 1)
Set fnd = Rows(i).FindNext(fnd)
If fnd Is Nothing Then Exit Do
Loop Until fnd.Column = tmp
End If
If n > 0 Then Cells(i, str).Value = n
Next i
End Sub
これでM列へ合計値が出力できます。