http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_dictionary.html
こちらのサイトの「重複しない品名と個数の合計を計算します」の修正の仕方を教えてください。
元データで、B列からE列に数値があった場合の合計をだす
コードの修正方法がわかりません。
よろしくお願い致します。
>B列からE列に数値があった場合の合計をだす
このソースを見てみると まず 合計先を消去してから 順に品名を転記し、
既に 品名があった場合は、その単価を合計するようになっています。
つまり、修正は 不要です。
もし違う意味でしたら、コメントをください。
>B列からE列に数値があった場合の合計をだす
このソースを見てみると まず 合計先を消去してから 順に品名を転記し、
既に 品名があった場合は、その単価を合計するようになっています。
つまり、修正は 不要です。
もし違う意味でしたら、コメントをください。
いつも回答頂きありがとうございます!
日々、勉強をしているのですが、
まだまだ覚えないと行けませんね。
今回も大変助かりました。
ありがとうございました!
修正箇所をみて 応用できるように がんばってくださいね。
商品 A店 B店 C店 D店
りんご 200 200 150 120
みかん 80 100 90 95
りんご 120 130 110 100
と行った場合の、商品ごとにまとめて、
かつ店舗ごとの合計をだしたいと思っていました。
よろしくお願いします。
ご質問の目的であればVBAではなくExcelの集計機能で出来ますが、どうしてもVBAですか?
下記は同じサイト内にある集計の一例です。
http://www.eurus.dti.ne.jp/yoneyama/Excel/syukei.html
ほかにもピボットテーブルなど様々な集計方法がありますので、
順次学習していくと良いでしょう。
VBAでやりたいという場合ですが、Dictionary は一次元の連想配列のため、
複数の列をまとめて取り扱うことには向いていません。参考にしておられるページは、
Dictionaryの使い方の例であって集計の例ではないということです。
Excelにはマクロ記録という機能があります。、
集計作業からコピーまでの作業を記録させてマクロの雛形を作り、
そこに手を加えるという方法でプログラミングを覚えていくこともできますので、あわせてどうぞ。
Dictionary でがんばった人もいるみたいですが、
Excelの機能を利用したVBAでは下記のように短いもので済みます。
短いものは実行時間も短いですし、作成ミスも少ないですし、
後から見直しも楽になりますし、転用も楽になります。
Sub Macro1() With ActiveSheet ' アクティブなシートを対象とします。 .Range("G:K").ClearContents ' G:K列に書き出すものとしてまずはクリアします。 ' R1C1(A1)からR10C5(E10)までのデータを集計するものとします。 .Range("G1").Consolidate _ Sources:=Array("R1C1:R10C5"), _ Function:=xlSum, _ TopRow:=True, LeftColumn:=True, _ CreateLinks:=False End With End Sub
マクロの記録は、時々してそれに手を加えたりもするのですが、
基礎がまだしっかり身についていなのでいつも苦労しています。
アドダイス、大変参考になりました!
いつも回答頂きありがとうございます!
2013/03/13 18:32:49日々、勉強をしているのですが、
まだまだ覚えないと行けませんね。
今回も大変助かりました。
ありがとうございました!
修正箇所をみて 応用できるように がんばってくださいね。
2013/03/13 18:33:58