3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

ピボットテーブルを作成するマクロの部品を大まかに分割してみる – Excelマクロ・VBA

2012年3月25日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

エクセルマクロ・VBA達人養成塾 小川です。

昨日の朝は、「今晩、いったい、どこに泊まろう?!」と思っていたのですが。

無事、大阪駅のホテルグランヴィアにおります。

23階。

いい気分だ。。

外の景色が心地よいです。

最近ある受講生の方から受けた質問をベースに、こんなテーマで解説をしています。

エクセルで、重複しないリストを作り、集計表を作成したい – Excelテクニック
「ピボットテーブルを作るマクロ」を自動記録で作ってみる – Excel Macro, VBA
「ピボットテーブル」が作られる仕組みと「ピボットキャッシュ」 – Excelテクニック

下に示した表がある。


|A列 |B列 |C列 |D列 |E列 |
--------------------------------------------------------------
1 行目 |ID |受信日時 |企業名|内容 |タイプ |
--------------------------------------------------------------
2 行目 |1 |2012/2/1 |A社 |××支払利息 |Comment |
--------------------------------------------------------------
3 行目 |2 |2012/2/2 |B社 |×□制作料 |Flash |
--------------------------------------------------------------
4 行目 |3 |2012/2/3 |C社 |×□賃貸料 |Periodical|
--------------------------------------------------------------
5 行目 |4 |2012/2/4 |A社 |×凹委託費用 |Report |
--------------------------------------------------------------
6 行目 |5 |2012/2/5 |C社 |×凹実施料 |Comment |
--------------------------------------------------------------
7 行目 |6 |2012/2/6 |A社 |□凹商品売却 |Report |
--------------------------------------------------------------
8 行目 |7 |2012/2/7 |C社 |□凸保険料 |Flash |
--------------------------------------------------------------
9 行目 |8 |2012/2/8 |B社 |△×支払利息 |Comment |
--------------------------------------------------------------
10行目 |9 |2012/2/9 |C社 |△□不動産取引|Flash |
--------------------------------------------------------------
11行目 |10 |2012/2/10|A社 |△○制作料 |Report |
--------------------------------------------------------------
12行目 |11 |2012/2/11|A社 |△凹調査料 |Comment |
--------------------------------------------------------------
13行目 |12 |2012/2/12|B社 |○×荷役料 |Comment |
--------------------------------------------------------------
14行目 |13 |2012/2/13|E社 |○□リース料 |Comment |
--------------------------------------------------------------
15行目 |14 |2012/2/14|B社 |○□代行費用 |Flash |
--------------------------------------------------------------
16行目 |15 |2012/2/15|C社 |凹×リース料 |Flash |
--------------------------------------------------------------
17行目 |16 |2012/2/16|F社 |凹□支払利息 |Flash |
--------------------------------------------------------------
18行目 |17 |2012/2/17|A社 |凸×作成料 |Comment |
--------------------------------------------------------------
19行目 |18 |2012/2/18|B社 |凸×制作料 |Flash |
--------------------------------------------------------------
20行目 |19 |2012/2/19|A社 |凸△賃貸料 |Flash |
--------------------------------------------------------------
21行目 |20 |2012/2/20|B社 |凸凸制作料 |Periodical|
--------------------------------------------------------------

このとき、以下のように、どの対象のどのタイプが何回出現したかを集計したい。


|A列 |B列 |C列 |D列 |E列 |F列 |
-----------------------------------------------------------
1 行目 |企業名|合計 |Flash|Comment|Periodical|Report|
-----------------------------------------------------------
2 行目 |A社 |7 |3 |4 |0 |0 |
-----------------------------------------------------------
3 行目 |B社 |6 |3 |2 |1 |0 |
-----------------------------------------------------------
4 行目 |C社 |5 |3 |1 |1 |0 |
-----------------------------------------------------------
5 行目 |D社 |0 |0 |0 |0 |0 |
-----------------------------------------------------------
6 行目 |E社 |1 |0 |1 |0 |0 |
-----------------------------------------------------------
7 行目 |F社 |1 |1 |0 |0 |0 |
-----------------------------------------------------------

で、前回までの記事です。

エクセルで、重複しないリストを作り、集計表を作成したい – Excelテクニック
「ピボットテーブルを作るマクロ」を自動記録で作ってみる – Excel Macro, VBA
「ピボットテーブル」が作られる仕組みと「ピボットキャッシュ」 – Excelテクニック

それをふまえたうえで、まずは、前回書いたマクロの一行目だけ見てみましょう。

    ActiveWorkbook.PivotCaches.Add( _
        SourceType:=xlDatabase, SourceData:=”main!R1C1:R21C5″) _
        .CreatePivotTable _
            TableDestination:=””, _
            TableName:= “ピボットテーブル1”, _
            DefaultVersion:=xlPivotTableVersion10

解説の流れとして、僕がいちばん話しやすい順に。

まずは、 .CreatePivotTable メソッドについて書いてみます。

ヘルプを見てみましょう。

「 CreatePivotTable 」という文字列の上にカーソルを持ってきて、ファンクションキーの [F1] 。

すると、以下の文言が。

PivotCache オブジェクトに基づいてピボットテーブル レポートを作成します。PivotTable オブジェクトを返します。

つまり、

「PivotCache オブジェクトのメソッドで、戻り値は PivotTable オブジェクトだ。」

と言っているわけです。

それは、昨日の文脈に乗って説明しなおすと。

「PivotTable を作りたかったら、どの PivotCache を元にして作るのかを指定してね」

ということ。

そして、

    ActiveWorkbook.PivotCaches.Add( _
      
  SourceType:=xlDatabase, SourceData:=”main!R1C1:R21C5″)

の部分は何をしているのかというと。

ざっくり言うと、

「今表示しているファイルに、ピボットキャッシュを追加する」

と言っています。

もうちょい、具体的に書くと。

「ActiveWorkbook.PivotCaches.Add」までが、

「今表示しているファイルに、ピボットキャッシュを追加する」

と言っている部分。

そのとき、「どんなピボットキャッシュを作りたいか」についてもうちょい細かく書いているのが、

「 (SourceType:=xlDatabase, SourceData:=”main!R1C1:R21C5″) 」

の部分です。

と、いうことで、この行の大まかな構成が見えてきました。

  • ActiveWorkbook.PivotCaches.Add
    「今表示しているファイルに、ピボットキャッシュを追加する」
  • SourceType:=xlDatabase, SourceData:=”main!R1C1:R21C5″
    「追加するピボットキャッシュの詳細を指定している」
  • .CreatePivotTable
    「上記のステップまでで作られたピボットキャッシュを使って、ピボットテーブルを作る」
  • TableDestination:=””, TableName:=”ピボットテーブル1″, DefaultVersion:=xlPivotTableVersion10
    「作るピボットテーブルの詳細を指定している」

ということです。

さりげなく追記しましたが、最後の

TableDestination:=””, TableName:=”ピボットテーブル1″, DefaultVersion:=xlPivotTableVersion10

の部分は、作成するピボットテーブルの詳細を指定しているところです。

ということで、次回から、このばらばらにした部品について、もう少し見ていきたいと思います。
気が向けば、ですけど。

それでは ヾ(´ー`)ノ

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド