LoginSignup
kansai5963
@kansai5963

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

VBAで同一項目の合計を表示しマクロで動かしたい

解決したいこと

EXCELのVBAを使用して商品ごとの集計表を作成したい。

元となる表は商品名、個数、金額、計のカラムがあり、
商品ごとの合計個数、金額(単価)、合計金額(合計個数*単価)を
表示させたいです。

マクロの記録で「統合」から合計を選択し該当列を選択後同じシートに
結果を表示するところまではうまくいきましたが、これをVBAに貼り付けて動かすと
エラーとなります。

発生している問題・エラー

統合元と統合先の範囲が重複しています。

該当するソースコード

  'マクロの記録で取得した結果
    Range("G3").Select
    Selection.Consolidate Sources:= _
        "'C:\Users\xxxxxxx\Desktop\[ツール.xlsm]出力結果'!C2:C5", Function:= _
        xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False

自分で試したこと

C2:C5の部分を修正しましたが、参照が正しくありませんというエラーが発生しております。

0

1Answer

統合なんていう機能があるんですね。
統合を使う条件は下記のようです。

  • (事前に)「出力用のヘッダ」を用意しておく
  • (事前に)「出力用のヘッダを選択」をしておく
  • 統合機能を使って「集計対象の範囲」を選択する

あらかじめ出力用のヘッダを作り、選択しておく必要があるようです。
出力先の選択が、Range("G3").selectになっています。これはセルが一つしか選ばれていないということです。
出力したい項目分の選択が必要です。

集計対象の範囲はマクロの記録で言うとsourcesになると思います。
提示してあるマクロの記録を見ると、
集計対象の範囲に、ツール.xlsmの「出力結果」というシートが指定されています。
出力先と集計範囲を間違えているのではないでしょうか。

出力用ヘッダは元となる表のヘッダと同じ語句でなければならないので、
まず元の表から「商品名」、「個数」、「金額」、「計」をコピーし貼り付けてください。
マクロの記録を開始し、出力用のヘッダを選択し、統合を開始してください。
ウィザードの中で集計対象を選んで統合を実行してください。
これでできたマクロを編集すれば動くと思います。

0

Comments

  1. @kansai5963

    Questioner
    ご回答ありがとうございました。
    無事できました。

Your answer might help someone💌