大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、ピボットテーブルのデータソースを変更する方法について、ご紹介します。データソースを変更するには、「ChangePivotCache」を使います。元データの範囲を、簡単に変更できるので便利です。ピボットテーブルの操作を自動化していきましょう。

はじめに

この記事では、VBAでピボットテーブルのデータソースの変更をする方法について、ご紹介します。

データソースの変更をするには、「.ChangePivotCache」を使います。

ピボットテーブルの元データの範囲を、簡単に変更することができるので、便利です。

シートモジュールにVBAコードを記載すると、元データが変更されたときに、ピボットテーブルに自動的に反映する、ということもできます。

VBAを使って、ピボットテーブルの操作を自動化していきましょう。

では、VBAでピボットテーブルの「データソースの変更」をする方法について、解説していきます。

この記事で紹介すること

  • VBAでピボットテーブルの「データソースの変更」をする方法

目次から使いそうな説明のところへ移動すると便利ですよ。

目次

VBAコードまとめ

ピボットテーブルの「データソースの変更」について、VBAコードをまとめています。

VBAコードだけ確認したい場合に、ご活用ください。

'元データの範囲を取得
Set A = Worksheets("元データ").Range("A1").CurrentRegion

'データソースを変更する
ActiveSheet.PivotTables(1).ChangePivotCache ActiveWorkbook.PivotCaches.Create(xlDatabase, A)

では、解説していきます。

VBAでピボットテーブルのデータソースの変更をする

VBAで、ピボットテーブルのデータソースの変更をしてみます。

元データの範囲を変更するVBAコード

元データの範囲を変更するVBAコードは、こんな感じになります。

Sub TEST1()
    
    'データソースを変更する
    ActiveSheet.PivotTables(1).ChangePivotCache ActiveWorkbook.PivotCaches.Create(xlDatabase, 元データの範囲)
        
End Sub

「元データの範囲」のところに、ピボットテーブルに反映したい「セル範囲」を入力します。

では、やってみます。

元データの範囲を変更してみる

VBAで、元データの範囲を変更してみます。

VBAコードは、こんな感じになります。

Sub TEST2()
    
    '元データの範囲を取得
    Set A = Worksheets("元データ").Range("A1").CurrentRegion
    
    'データソースを変更する
    ActiveSheet.PivotTables(1).ChangePivotCache ActiveWorkbook.PivotCaches.Create(xlDatabase, A)
        
End Sub

最初に、ピボットテーブルを作成しておきます。

ピボットテーブルを作成しておく

ピボットテーブルを作成しておく

元データに、手動でデータを追加します。

手動でデータを追加

元データに手動でデータを追加する

では、VBAコードを実行してみます。

VBAで元データの範囲ができた

VBAでピボットテーブルの元データの範囲を変更する

VBAで、ピボットテーブルの元データの範囲を変更できました。

データの追加と範囲の変更をしてみる

次は、VBAで、データの追加と範囲の変更をしてみます。

VBAコードは、こんな感じになります。

Sub TEST3()
    
    '元データの最終行を取得
    Dim LastRow
    LastRow = Worksheets("元データ").Cells(Rows.Count, "A").End(xlUp).Row
    
    '追加データを元データに貼り付け
    Worksheets("追加データ").Range("A1").CurrentRegion.Copy Worksheets("元データ").Cells(LastRow + 1, "A")
    
    '元データをオブジェクトに格納
    Dim A
    Set A = Worksheets("元データ").Range("A1").CurrentRegion
    
    'データソースを変更する
    ActiveSheet.PivotTables(1).ChangePivotCache ActiveWorkbook.PivotCaches.Create(xlDatabase, A)

End Sub

ピボットテーブルを作成してきます。

ピボットテーブルを作成しておく

ピボットテーブルを作成しておく

シートを追加しておいて、追加したいデータを記載しておきます。

追加したいデータを記載しておく

追加データのシートのデータを追加する

では、VBAコードを実行してみます。

VBAで元データにデータが追加されます。

VBAで元データに追加できた

VBAで元データにデータが追加された

VBAでピボットテーブルの元データの範囲が変更されます。

VBAで元データの範囲が変更できた

VBAでピボットテーブルの元データの範囲が変更された

VBAで、ピボットテーブルの元データの範囲が変更されました。

こんな感じで、VBAを使うと、元データの範囲を簡単に変更できます。

VBAで元データが変更されたら自動で範囲を変更してみる

VBAで、元データが変更されたら、自動で元データの範囲を変更する、というのを作ってみます。

自動でデータソースの変更をするVBAコード

元データが変更されたら、自動でデータソースの変更をするVBAコードは、こんな感じになります。

「元データ」のシートモジュールに、VBAコードを記載します。

'シートが変更されたら実行(「元データ」シートのモジュールに記載する)
Private Sub Worksheet_Change(ByVal Target As Range)

    '元データの範囲を取得
    Set A = Range("A1").CurrentRegion

    'データソースを変更する
    Worksheets("Sheet1").PivotTables(1).ChangePivotCache ActiveWorkbook.PivotCaches.Create(xlDatabase, A)

End Sub

最初に、ピボットテーブルは作成しておきます。

ピボットテーブルを作成しておく

ピボットテーブルを作成しておく

では、元データで、データの追加と削除をやってみます。

元データにデータを追加してみる

元データにデータを追加してみます。

元データにデータを追加

元データにデータを追加してみる

VBAで、ピボットテーブルの元データの範囲を変更できます。

VBAで範囲の変更ができた

VBAでピボットテーブルの元データの範囲を変更できた

VBAで、ピボットテーブルの元データの範囲を変更できました。

便利です。

元データの一部を削除してみる

次は、元データの一部を削除してみます。

元データのデータを削除

元データのデータを削除してみる

VBAで、ピボットテーブルの元データの範囲を変更できます。

VBAで元データの範囲を変更できた

VBAでピボットテーブルの元データの範囲を変更できた

VBAで、ピボットテーブルの元データの範囲を変更できました。

おわりに

この記事では、VBAでピボットテーブルのデータソースの変更をする方法について、ご紹介しました。

データソースの変更をするには、「.ChangePivotCache」を使います。

ピボットテーブルの元データの範囲を、簡単に変更することができるので、便利です。

シートモジュールにVBAコードを記載すると、元データが変更されたときに、ピボットテーブルに自動的に反映する、ということもできます。

VBAを使って、ピボットテーブルの操作を自動化していきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す