Excelマクロ・VBA ピボットテーブルを自動更新する方法

2019年11月6日

元データが更新される度に

ピボットテーブルの内容を

自動更新するにはマクロを

使用する必要があります。

(ファイルを開いた時であれば設定で可能)

この記事では自動更新される

サンプルファイルとソースコード、

および利用方法を紹介します。

なおこのマクロを使用するブックでは

「元に戻す」操作が行えなくなります。

サンプルファイル

使用方法

※セキュリティの警告が出る場合は有効化してください。(解除方法↓)

「元データ」ワークシートに

元データを記述して

任意のシートにピボットテーブルを作成すれば

元データの変更がピボットテーブルに

自動的に反映されます。

コード

下記コードをペーストすれば

任意のブックで使用可能です。

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim pivotTable As pivotTable
  Dim Worksheet As Worksheet
  ' ブック中の全ワークシートを走査するループ Start
  For Each Worksheet In Worksheets
    ' ワークシート中の全ピボットテーブルを走査するループ 
    For Each pivotTable In Worksheet.PivotTables
     pivotTable.PivotCache.Refresh ' ピボットテーブルを更新 
    Next
  Next
  ' ブック中の全ワークシートを走査するループ End
End Sub

任意のブックへの適用手順

VBAエディターを開き、

元データのシートを

ダブルクリックします。

VBAエディターを開き、元データのシートをダブルクリック

コードウインドウが表示されるので

ここにコードサンプルをペーストすれば完了です。

元データシートのコードウインドウ
元データシートのコードウインドウにコードサンプルを張り付けた結果

関連記事

VBAエディタの開き方など(マクロ・VBA 最初のプログラム)

ピボットテーブル関連の記事一覧