【ExcelVBA公開模試】1次元配列と2重ループでグループ別合計を求める
文法を無視して、とりあえず動けばいいという邪道ExcelVBA講座こと「速読VBA単語」に準拠した問題を出題します。
問題
A1:A100に文字列、B1:B100に数値が入っていて、空白等は無い(図1)。ExcelVBAを用いて、A1:A100のグループ別に、B列の数値の合計を求めてD~E列に表示しなさい(図2)。ただし、D~E列の並び順は任意とし、COUNTIFやSUMIFを使用してはならない。
<図1>
<図2>
わえなび式 正解例
(このページの下にあります)
目標回答時間
プロ3分以内、アマチュア10分以内に処理ができたら合格
この問題の出題範囲
「速読VBA単語」Program3-6-2まで
ご案内
ExcelVBAをなんとなく理解できればいいという初心者のための「速読VBA単語」を受講希望の方はカリキュラムをご覧ください。
正解例
Sub moshi()
Dim groupname(100)
Dim groupsum(100)
cnt = 1
groupname(1) = Cells(1, 1)
groupsum(1) = Cells(1, 2)
For i = 2 To 100
For j = 1 To cnt
If groupname(j) = Cells(i, 1) Then
groupsum(j) = groupsum(j) + Cells(i, 2)
Exit For
ElseIf j = cnt Then
cnt = cnt + 1
groupname(cnt) = Cells(i, 1)
groupsum(cnt) = Cells(i, 2)
Exit For
End If
Next
Next
For i = 1 To cnt
Cells(i, 4) = groupname(i)
Cells(i, 5) = groupsum(i)
Next
End Sub
バックナンバー
この記事が気に入ったらサポートをしてみませんか?