名称未設

【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

バックナンバー


この記事が気に入ったらサポートをしてみませんか?