Excelでピボットテーブルを使ってデータを整理することは非常に便利ですが、手動で作成するのは時間がかかります。マクロを使えば、ピボットテーブルを新しいシートに自動で作成し、必要なフィールドや順番を設定することができます。本記事では、Excelマクロを使用してピボットテーブルを効率的に作成する方法を解説します。
ピボットテーブルを新規シートに作成する方法
ピボットテーブルを新しいシートに作成するには、まずVBA(Visual Basic for Applications)を使用して、データを元にピボットテーブルを自動で挿入します。以下のコードを使えば、新しいシートを作成し、そのシートにピボットテーブルを追加できます。
Sub CreatePivotTable()
Dim ws As Worksheet
Dim pivotWs As Worksheet
Dim pivotTable As PivotTable
Set ws = ThisWorkbook.Sheets("Sheet1") ' データがあるシート名を指定
Set pivotWs = ThisWorkbook.Sheets.Add ' 新規シートを追加
pivotWs.Name = "PivotTableSheet"
Set pivotTable = pivotWs.PivotTableWizard(SourceType:=xlDatabase, SourceData:=ws.Range("A1:F100"))
End Sub
このコードを実行すると、新しいシートにピボットテーブルが作成されます。
フィールド順序の設定方法
次に、ピボットテーブルの行フィールドに順番を設定する方法を紹介します。例えば、「東京」「大阪」「京都」「広島」「北海道」の順に並べたい場合、VBAでフィールドを行に追加し、順番を指定することができます。
Sub SetFieldOrder()
Dim pivotTable As PivotTable
Set pivotTable = ActiveSheet.PivotTables(1)
pivotTable.PivotFields("都市").Orientation = xlRowField
pivotTable.PivotFields("都市").Position = 1
' 順番を設定
pivotTable.PivotFields("都市").AutoSort xlAscending, "都市"
End Sub
このコードで、都市名の順番を指定した順序で表示できます。
関東フィールドを値エリアに追加する方法
次に、「関東」というフィールドを値エリアに追加する方法について説明します。以下のコードを使うことで、「関東」フィールドを自動的に値エリアに追加できます。
Sub AddFieldToValues()
Dim pivotTable As PivotTable
Set pivotTable = ActiveSheet.PivotTables(1)
pivotTable.AddDataField pivotTable.PivotFields("関東"), "関東の販売数", xlSum
End Sub
このコードを実行すると、「関東」フィールドが値エリアに追加され、販売数が集計されます。
日付のグループ解除とフォーマットの設定
日付フィールドが複数列にグループ化されている場合、グループ解除して「yyyy/m/d」形式で表示する方法を説明します。以下のコードを使用することで、日付を指定の形式で表示し、グループ解除を行うことができます。
Sub FormatDateField()
Dim pivotTable As PivotTable
Set pivotTable = ActiveSheet.PivotTables(1)
pivotTable.PivotFields("日付").NumberFormat = "yyyy/m/d"
pivotTable.PivotFields("日付").ShowDetail = False
End Sub
このコードで、日付が「yyyy/m/d」形式で表示され、グループ解除されます。
「表形式で表示」を選択し、小計を非表示にする方法
最後に、ピボットテーブルを「表形式で表示」にし、小計を非表示にする方法を説明します。これを行うことで、より見やすくシンプルなレポートを作成することができます。
Sub SetTableFormat()
Dim pivotTable As PivotTable
Set pivotTable = ActiveSheet.PivotTables(1)
pivotTable.TableStyle2 = "PivotStyleLight16"
pivotTable.ShowSubtotals = False
End Sub
このコードを実行することで、ピボットテーブルが表形式で表示され、小計が非表示になります。
まとめ
Excelマクロを使用してピボットテーブルの処理を自動化する方法について説明しました。マクロを活用することで、手動での操作を減らし、データ分析を効率化できます。ピボットテーブルを新規シートに作成し、フィールド順序や値の反映、日付の表示形式の変更、小計の非表示など、さまざまなカスタマイズが可能です。これらの手順を試して、ピボットテーブルをより効果的に活用しましょう。


コメント