エクセルVBAでピボットテーブルの作成先や列の流し込み方法を教えてください

このQ&Aのポイント
  • エクセルVBAでピボットテーブルを作成していますが、作成先の指定方法や列の流し込み方法が分かりません。お教えください。
  • 質問1:エクセルVBAでピボットテーブルの作成先を指定する方法はありますか?また、予め準備したシートに作成することは可能でしょうか?
  • 質問2:作成されたピボットテーブルの列を別のシートにそれぞれ流し込むことはできますか?具体的には、ピボットテーブルの購入額列を別のシートのB列に、総計列をC列に流し込みたいです。
回答を見る
  • ベストアンサー

エクセルVBAでピボットテーブルを作成しています。

エクセルVBAでピボットテーブルを作成しています。 作成まではできましたが、以下2つのVBAの組み方が分からないのでおしえてください。 【質問1】 ピボットテーブルの作成先を指定できるか? 例えば、予め準備したシートに作成することは可能でしょうか? VBAのどこを触ったら良いか分かりません。 【質問2】 作成されたピボットテーブルの列を、見出しの準備された別シートへ、それぞれ流し込むことはできるか? 例えば ピボットテーブルが以下のように作成されたとして、 A列  B列 購入額 総計 A社  1000 B社  2500 C社  800 予め用意した別シート(A~D列の見出しは固定)のB、C列にピボットのA、B列(最終行まで)をそれぞれ流し込みたいのです。 A列(コード) B列(購入額)  C列(総量)  D列(JANコード) 001      A社        1000      JAN1 002      B社        2500       JAN2 003      C社        800      JAN3 流し込んだ列を元にA、D列にはVLOOKをかける予定です。 何か良い案があれば是非、ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

>【質問1】 ピボットテーブル作成時に、『既存のワークシート』に作成する動作をマクロ記録とればわかると思いますが。 CreatePivotTableメソッドの引数、TableDestination:=... で指定します。 >【質問2】 提示レイアウト通りだったら、単純にコピーすれば良いのでは。 列の総計、ColumnGrandプロパティをFalseにして、 With ActiveSheet.PivotTables(1)   .ColumnGrand = False   .DataBodyRange.Resize(, 2).Offset(, -1).Copy Sheets("Sheet2").Range("B2") End With ...など。

関連するQ&A

  • Excel VBA ピボットテーブル作成

    <元データ>Sheet1 A列 B列 C列 D列 E列 F列 商品名 種類 担当者 売上日 備考 本数 りんご 国産 新人 2010/4/1 売れ筋 5 なし 外国産 ベテラン 2010/4/5 通常 6 いちご 国産 新人 2010/3/23 通常 2 元データをもとにピボットテーブルを作成。添付図をご確認ください。 ピボットテーブルの下記条件を別シートにコピーしたいと考えています。※ピボットテーブルのシートはSheet2です。 C列の担当者で新人を選択、F列の本数で3本以上を抽出して Sheet3に貼り付けるマクロを考えています。 また、元データの行や列の増減に対応できるようにしたいです。 元データからピボットテーブルを作成して、希望条件のみを抽出して 別シートにコピーするマクロのサンプルをお教え頂けますでしょうか。

  • Excelのピボットテーブルについて相談です

    添付のようなピボットテーブルがあり、IDに対して各列(A、B、C、D、E)に 〇と空白のみだと表示せず、×が1つでもあれば表示ということをやりたいです フィルターを使わない行いたいのですが ピボットテーブルの参照元のデータから、各列(A、B、C、D、E)の〇と×を集計してた列を作成し、フィルターとして適用すればいいのかなとも思いつきましたが、実現方法がわからない次第です ご存じの方、教えていただけると助かります よろしくお願いします

  • VBAでピボットテーブルは作れるものでしょうか

    2つ連続して質問してしまい申し訳ありません。 以下のようなExcelデータがあります。 このデータを用いて、ピボットテーブルを作りたいと考えています。 縦項目に変数A(氏名)、横項目に変数B(科目) クロス表に示される値を変数C(得点) としたいと考えています。 変数Dは過去の試験結果で今回は用いません。 手操作でのピボットテーブルは自分で作成できるのですが、今後のために 自動的に処理させる一環として、VBAのプログラムでピボットテーブルを 作成したいと考えています。 そのようなことは可能でしょうか? もし可能でしたらどのようなコードになるのでしょうか。 お手数ですが、教えていただけると幸いです。 よろしくお願いいたします。 A    B C  D Xさん 国 60 65 Xさん 社 90 85 Xさん 数 70 55 Xさん 理 80 75 Xさん 英 65 70 Yさん 国 85 85 Yさん 社 95 90 Yさん 数 95 100 Yさん 理 90 90 Yさん 英 85 90 Zさん 国 55 60 Zさん 社 40 35 Zさん 数 40 50 Zさん 理 60 65 Zさん 英 35 30

  • できればピボットテーブルを使いたい

    エクセルのデータとして 【1sheet】 A 10 B 20 C 30 D 40 E 50 【2sheet】 B 50 C 10 E 20 A 40 D 30 【3sheet】 D 30 B 20 A 10 E 50 C 40 【4sheet】 E 20 C 40 A 30 B 10 D 50 とバラバラなデータがあるとします。 上記の場合、合計は A 90 B 100 C 120 D 150 E 140 となりますが、わざわざ1つずつ計算機で算出しています。 これをピボットテーブルというものを使って集計することはできますか? もし出来るならば簡単で構わないので方法を教えて下さると助かります。 また、ピボットテーブルは使えないまたは、使わないほうが良いということで算出する場合、どのような効率の良い方法があるのでしょうか? お願いします。

  • エクセル2000 ピボットテーブル

    御世話になります。 エクセルにAシートをがあります。  A         B         C       D  1氏名     郵便番号 2氏名     郵便番号 3 4 Bシートがあります。  A         B         C       D 1郵便番号   都道府県    市町村 2郵便番号   都道府県    市町村 3郵便番号   都道府県    市町村 4郵便番号   都道府県    市町村            ・            ・            ・            ・ ここで行いたいことは、AシートのB列に郵便番号を入力すると 自動的にC列に都道府県、D列に市町村が入力をするようにしたいのです。 (Bシートから整合する郵便番号の行のB列、C列のデーターを取得する) 確かピボットテーブル使用すると出来るとの記憶があるのですが・・・ いまいち使い方がわかりません。これができると大変便利ですので お願い致します。

  • ピボットテーブル最終行から2行目に項目を入れて3行目から新しいピボットテーブルを貼り付けたい。

    エクセルのマクロで、ピボットテーブルを2つ作成しています。 それを集計表シートに貼り付けています。 「A1」に「ピボットテーブル1」の名前を入れて 1つ目のピボットテーブルの範囲が「A2:G10」の場合 11行目は空欄 「A12」に「ピボットテーブル2」の名前 「A13(:D20など)」ピボットテーブル2 というようにピボットテーブルを貼り付けていきたいのですが、 良い方法はありませんか? 現在は2つ目のピボットテーブルを「A25」に貼り付けるように 設定していますが、1つ目のピボットテーブルの大きさが毎回 変化するので、見た目がきれいではありません。 2つ目のピボットテーブルを貼り付ける部分のVBAを記入しておきます。 「貼り付け」シートのデータを元にピボットテーブルを作成しています。 ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "貼り付け!R2C15:R300C19", Version:=xlPivotTableVersion12).CreatePivotTable _ TableDestination:="集計表!R25C1", TableName:="ピボットテーブル13", DefaultVersion _ :=xlPivotTableVersion12 Sheets("集計表").Select Cells(25, 1).Select

  • エクセルのピボットテーブルで

    ピボットテーブルの表示方法についてです。 表の品名と数量からピボットテーブルを作成します。 行に品名、データ部に数量を表示させるのですが、数量が0(ゼロ)の場合には、その行自体を表示させない様にしたいのです。 元の表の方は変更等出来ないので、ピボットテーブルの方で何とか出来ないかと思います。 【元の表】 品番  数量 A001  5,000 A002    0 B001  4,500 B002    0 上記の2列からピボットテーブルを作成すます。 【ピボットテーブル】 品番  数量 A001  5,000 B001  4,500 総計  9,500 上記の様に、元の表で数量が0なら、その品番と数量の行が表示されない様にです。

  • エクセルVBA ピボット作成

    SUB テスト1()Sheet1("A2~F3600")のデータを新規ブックのSheet1にピボットテーブル表示させるVBA構文をご教示ください。初心者です宜しくお願いします。

  • ピボットテーブルをマクロで作成したい

    こんにちは。よろしくお願いします。 ピボットデーブルをマクロで作成したいのですが、条件がいくつかあり、それに沿ったものをどうすれば作成できるか教えていただきたいと思います。マクロは記録するものを使用する程度の初心者です。 <元データ> A B C D E 1 生徒 科目 期末1 期末2 期末3・・・ 2 花子 国語  20   30  50 ・・・ 3 花子 英語  40   10  60 ・・・ 4 花子 化学  10   20  50 ・・・ 5 太郎 国語  10   20  50 ・・・ 6 太郎 英語  40   30  50 ・・・ 7 太郎 化学  50   70  80 ・・・ ↓ ↓ <作成したいピボットテーブル>      期末1    期末2   期末3・・・     国語 英語 国語 英語 国語 英語・・・  花子 20  40  30   10  50  60 ・・・  太郎 10  40  20   30  50  50 ・・・ (1)既存の「結果」という名前のシートにピボットを作成したいです。 (2)期末1、期末2・・・のC列からのデータの列数は毎回違います。 (3)今回は国語、英語、化学のデータから国語と英語のデータを例にとりましたが、科目の種類も科目の数も毎回違います。生徒数も変わります。 別シート(シート名「結果」)のA列に、まとめる際に必要な科目名が入力されており、そことリンクさせてピボットを作成できたら、と思っています。(例 A1に国語 A2に英語と入力されていたら、上記の作成したいピボットテーブルのような形になる、というように) どなたかお力を貸していただけますでしょうか。 よろしくお願いします。

  • エクセルでのマクロでピボットテーブル作成

    毎月以下のような表の作業をしますが、  あ  い  う 1  A  B  100 2  C   D   100 3  D   E   200 4  W   R   200 5  T   G   500 この表で「う」の列の200を抽出し100と500は抽出しない つまり以下の表になる  あ  い  う 3  D   E   200 4  W   R   200 というマクロを使用したピボットテーブルを作成したいが、とりあえずマクロの自動記録でやると 以下のようになります。 With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("う") .PivotItems("100").Visible = False .PivotItems("500").Visible = False End With ここで問題なのはいつも「う」の列は100と200と500だけとは限らないことです。 時には600があり、また時には500がなかったりします。 そうすると100とか200とか500に何か変数をあてはめて実行すればいいでしょうか? よろしくお願いします。

専門家に質問してみよう