Excelでデータを効率的に集計するためにピボットテーブルは非常に強力なツールですが、その作成や設定をマクロで自動化する方法について解説します。この記事では、特定のフィールドを行に配置し、日付のフォーマットを変更し、特定の設定を適用したピボットテーブルを作成するマクロの手順を紹介します。
ピボットテーブルをマクロで作成する方法
まずは、ピボットテーブルを自動で作成するための基本的なマクロを作成します。以下のコードは、アクティブシートから新しいシートにピボットテーブルを作成し、指定したフィールドを行に配置し、「可否」を合計する設定を行うものです。
Sub CreatePivotTable()
Dim ws As Worksheet
Dim pt As PivotTable
Dim dataRange As Range
Dim pivotSheet As Worksheet
' アクティブシートのデータ範囲を設定
Set ws = ActiveSheet
Set dataRange = ws.UsedRange
' 新しいシートを作成
Set pivotSheet = ThisWorkbook.Sheets.Add
pivotSheet.Name = "PivotSheet"
' ピボットテーブルの作成
Set pt = pivotSheet.PivotTableWizard(SourceType:=xlDatabase, SourceData:=dataRange)
' フィールドを設定
pt.AddFields RowFields:="国, 首都, エリア, 可否", DataFields:="可否"
pt.PivotFields("可否").Function = xlSum
End Sub
このコードでは、PivotTableWizard
を使ってピボットテーブルを作成し、指定されたフィールドを行に配置します。また、「可否」フィールドを合計(Sum)として設定しています。
日付のグループ解除とフォーマットの変更
次に、ピボットテーブルの中で日付の列をグループ解除し、表示形式を「yyyy/m/d」に変更する方法を説明します。日付フィールドを選択し、グループ解除を行うと、詳細な日付を表示できます。以下のコードはその手順を示しています。
Sub FormatDateField()
Dim pt As PivotTable
Set pt = ThisWorkbook.Sheets("PivotSheet").PivotTables(1)
' 日付フィールドをグループ解除
pt.PivotFields("日付").ClearAllFilters
pt.PivotFields("日付").NumberFormat = "yyyy/m/d"
End Sub
このコードは、ピボットテーブル内の日付フィールドを選択し、NumberFormat
で表示形式を変更しています。
表形式の表示と小計の非表示
ピボットテーブルを「表形式で表示」し、小計を非表示にするためには、次のように設定を行います。
Sub FormatPivotTable()
Dim pt As PivotTable
Set pt = ThisWorkbook.Sheets("PivotSheet").PivotTables(1)
' 表形式で表示
pt.TableStyle2 = "PivotStyleLight16"
' 小計を非表示に設定
pt.RowGrand = False
pt.ColumnGrand = False
End Sub
このコードでは、TableStyle2
を使って表形式を適用し、RowGrand
とColumnGrand
をFalse
に設定することで小計を非表示にしています。
まとめ
このように、Excelマクロを使用すると、ピボットテーブルを自動で作成し、必要な設定を簡単に適用できます。フィールドを指定した順番で配置し、日付の表示形式を変更し、表形式にして小計を非表示にするなど、作業の効率化が図れます。特に大規模なデータを扱う場合には、マクロを活用することで時間を大幅に短縮することができます。
マクロを活用して業務を効率化し、データ分析をスムーズに行えるようにしましょう。
コメント