• 締切済み

VBAに関する質問です

現在、以下の記述で項目の名称が一致した場合、数字の加算集計を行って名称と加算結果を別シートに表示させるマクロを使用しています。 このマクロに記述を加えて、『部署名別に項目名が一致した場合、数字の加算を行って部署名、項目名、加算集計結果を別シートに並べて表示させる』というマクロを作る場合、どのように記述すれば宜しいでしょうか? ご回答宜しくお願いします。 Sub sample() Dim i As Long, db, wk Set db = CreateObject("Scripting.Dictionary") For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row wk = Cells(i, "A") db(wk) = db(wk) + Cells(i, "B") Next With Sheets("sheet2") wk = db.keys For i = 0 To UBound(wk) .Cells(i + 1, "A") = wk(i) .Cells(i + 1, "B") = db(wk(i)) Next End With Set db = Nothing End Sub

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 Excel(エクセル) VBA入門:Dictionaryオブジェクトを利用する http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_dictionary.html こちらのサイトにある <2つの条件で合計する> と言うものを 希望されているのでしょうか? ⇒B列とC列を逆として考えれば良いのではないかな? 提示されているコードを作成されているなら、 あとちょっとで出来そうに思います。

tkntks2005
質問者

補足

お返事ありがとうございます。 貼っていただいたサイトを拝見させていただきました。 自分が希望しているものに非常に近い形だと思います。

すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>『部署名別に項目名が一致した場合、数字の加算を行って部署名、 >項目名、加算集計結果を別シートに並べて表示させる』 提示されているコードからこれら項目がどこにあるかはわかりませんよね? まずどんなデータがどのようにシート内のセルに入っているのか、 その辺の情報をあげないと。。。 ⇒何となくどこかでか見たようなコードなんですけどね。

tkntks2005
質問者

補足

大変失礼しました。 A欄に品名があり、B欄に数字があります。 質問にて記述させていただいた記述では、A欄の名称が一致した場合、一致した名称の行にあるB欄にある数字の加算集計を行うものです。 この記述に手を加え、C欄にある部署名別にA欄の名称が一致した場合、B欄の加算集計を行いたいと思っています。

すると、全ての回答が全文表示されます。

関連するQ&A