|    | 
     ▼VBA初心者 さん: 
 
トピの目的が、ループ処理の構文を身につけたい、勉強したいということなのか 
このテーマを、自分でもわかる方法で実行したいのか、それがわかりませんが 
後者で。 
 
1.A列を D列にコピペ 
2.D列を選択して データタブ 重複の削除 アップされた例なら D1:D6 に縮まります。 
3.E1:E6を選択し  =SUMIF(A:A,D1,B:B) これをタイプして Alt/Enter。 
4.D:E列を選択して Ctrl/c 。そのまま 形式を指定して【値】貼り付け。 
5.そのまま Ctrl/x。 
6.A1を選択して Ctrl/v。 
 
この操作をマクロ記録し、それを(かなり)お化粧直ししたのが以下のコードです。 
 
Sub Sample() 
  Columns("A").Copy Range("D1") 
  Columns("D").RemoveDuplicates Columns:=1, Header:=xlNo 
  With Range("D1", Range("D" & Rows.Count).End(xlUp)) 
    .Offset(, 1).Formula = "=SUMIF(A:A,D1,B:B)" 
    .Offset(, 1).Value = .Offset(, 1).Value 
  End With 
  Columns("D:E").Cut Range("A1") 
End Sub 
 
 | 
     
    
   |