【Excelマクロ】VBAでピボットテーブルの列設定・表示する順番の設定方法を紹介

スポンサーリンク

アイキャッチ画像

この記事では、ピボットテーブルで列を設定する方法を紹介しています。

 

初めに、これからVBAを使い始めるという方は、以下の記事をご覧ください。

 

以下のようなピボットテーブルがあるとします。

マクロ実行前のピボットテーブル

 

まず、前提としてこのピボットテーブルの名前は「集計」です。このピボットテーブルにはそれぞれ、「学生」「クラス」「性別」「名前」「国語」といったピボットアイテムがある状態です。

 

このピボットテーブルに列を設定するプログラムは以下の通りです。

    ' ピボットテーブルのセルを選択
    Cells(3, 1).Select

    ' ピボットアイテム「性別」を列に設定
    ActiveSheet.PivotTables("集計").PivotFields("性別").Orientation = xlColumnField

 

上記のプログラムを実行すると以下のように、列が設定されます。

マクロ実行後

ピボットテーブルを操作するためには、ピボットテーブルのセルを選択しておく必要があります。そのため、最初にCells(3, 1).Selectを書いています。

 

また、途中にはなりますが、以下ExcelのVBAを学ぶためにおすす目の書籍なので、紹介しておきます。

 

本題に戻ります。応用として列に2種類のアイテムを設定する場合、順番を設定することも可能です。以下のプログラムのように、「学年」を1、「性別」を2とすることで、学年ごとの性別の値を見ることが可能となります。 

    ' ピボットテーブルのセルを選択
    Cells(3, 1).Select

    ' ピボットアイテム「学年」を列に設定
    With ActiveSheet.PivotTables("集計").PivotFields("学年")
        .Orientation = xlColumnField
        .Position = 1
    End With
    
    ' ピボットアイテム「性別」を列に設定
    With ActiveSheet.PivotTables("集計").PivotFields("性別")
        .Orientation = xlColumnField
        .Position = 2
    End With

プログラム実行後のピボットテーブルは以下の通りです。

マクロ実行後

 

また、プログラムで「学年」のPositionを1、「性別」のPositionを2としたことから、学年が上、性別が下に入っています。

ピボットテーブルの列

 

以上、VBAでピボットテーブルの列を設定する方法の紹介でした。ピボットテーブルの名前の確認方法は以下をご覧ください。

 

ピボットアイテムの確認方法につていは以下をご覧ください。