Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12356 / 76734 ←次へ | 前へ→

【69903】Re:表の集計方法について
発言  SS  - 11/9/22(木) 13:46 -

引用なし
パスワード
   ▼うしろ さん:
オートフィルタ―を用いたものではないのですが
Dictionaryの勉強がてら作ってみました。
参考になれば幸いです。

Option Explicit

Sub Sample()
  Dim Dic As Variant, Keys As Variant
  Dim i As Long, j As Long
  Dim buf1 As String, buf2 As Currency
  
  Set Dic = CreateObject("Scripting.Dictionary")
  j = Cells(Rows.Count, 2).End(xlUp).Row
  For i = 2 To j
    buf1 = Cells(i, 2).Value      '種別をbuf1に格納する
    buf2 = Cells(i, 5).Value      '金額をbuf2に格納する
    If Not Dic.Exists(buf1) Then    'まだ登録されていなかったら…
      Dic.Add buf1, buf2       '種別と金額を連想配列に登録する
    Else
      Dic(buf1) = Dic(buf1) + buf2  '金額を追加する
    End If
  Next i
  Keys = Dic.Keys
  For i = 0 To Dic.Count - 1
    Cells(i + 2, 7) = Keys(i)
    Cells(i + 2, 8) = Dic(Keys(i))
  Next i
  Set Dic = Nothing
End Sub


>年月日    種別    店舗名       内容       金額
>9月2日    食費    業務用スーパー    烏龍茶×2    216
>9月2日    食費    業務用スーパー    麻婆茄子の素    88
>・・・・・・・・・続く
>上表のようにA列に年月日、B列:種別、C列:店舗名、D列:内容、E列:金額の順で入力された1ケ月毎の家計簿があります。種別毎に集計をしたいのですが、月によって種別の数が異なるのでマクロ(EXCEL2007)で対応したいと考えています。
>2003までのマクロと異なり自動記録機能ができないようなので相談に上がりました。考え方はおそらく以下のようにすればよいと思うのですがコードの記述方法を
>ご教示願います。(Win7 excel2007)
>1.(オート)フィルタ―
>2.B列の種別(1つ)を選択
>3.種別に対するE列の集計
>4.一時的に新しいシートに種別、金額をコピー(または内部メモリに記憶)
>5.F列に種別、G列に集計金額をコピーまたは記載(集計毎に行を下にずらす)
>6.新しいシートを削除
>→2.に戻り次の種別(1つ)を選択(種別が終了するまで繰り返す)
>7.(オート)フィルターの解除

3 hits

【69889】表の集計方法について うしろ 11/9/18(日) 21:32 質問
【69890】Re:表の集計方法について Yuki 11/9/19(月) 10:56 発言
【69897】ReRe:表の集計方法について うしろ 11/9/21(水) 23:04 質問
【69902】Re:ReRe:表の集計方法について Yuki 11/9/22(木) 13:42 発言
【69936】Re:ReRe:表の集計方法について うしろ 11/9/26(月) 8:41 お礼
【69898】Re:表の集計方法について ちん 11/9/22(木) 11:42 回答
【69934】Re:表の集計方法について うしろ 11/9/26(月) 8:34 お礼
【69901】Re:表の集計方法について ちん 11/9/22(木) 13:35 発言
【69908】Re:表の集計方法について ちん 11/9/22(木) 16:37 発言
【69935】ReRe:表の集計方法について うしろ 11/9/26(月) 8:37 お礼
【69903】Re:表の集計方法について SS 11/9/22(木) 13:46 発言
【69933】Re:表の集計方法について うしろ 11/9/26(月) 8:32 お礼

12356 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free