Excelでは、[ピボットテーブルツール]-[分析]タブ-[ピボットテーブル]グループの[ピボットテーブル名]欄で、
ピボットテーブルの名前を変更できます。
このピボットテーブル名の変更を、Excel VBA(Visual Basic for Applications)で行いたいというニーズがあるようです。
このサイト・インストラクターのネタ帳のアクセスログにも、
「ピボットテーブル名を変更する vba」
「excel vba ピボットテーブルの名前を変更」
「エクセル2010 マクロ ピボットテーブル名称変更」
といった検索キーワードが見られます。
いつものように、参考になりそうなシンプルなマクロをご紹介しておきます。
アクティブなシート上の1つ目のピボットテーブルの名前を変更するサンプルマクロ
以下のようなSubプロシージャで、アクティブなシート上の1つ目のピボットテーブルの名前を変更できます。
Dim pvt As PivotTable
On Error Resume Next
Set pvt = ActiveSheet.PivotTables(1)
On Error GoTo 0
MsgBox "アクティブシート上にピボットテーブルはありません。"
Else
pvt.Name = "新しい名前"
End If
End Sub
WorksheetオブジェクトのPivotTablesメソッドを使って、PivotTablesコレクションオブジェクトを取得して、1つ目のピボットテーブルを表すPivotTableオブジェクトを取得して名前を変更しています。
アクティブなピボットテーブルの名前を変更するサンプルマクロ
以下のようなSubプロシージャで、アクティブなピボットテーブルの名前を変更できます。
Dim pvt As PivotTable
On Error Resume Next
Set pvt = ActiveCell.PivotTable
On Error GoTo 0
MsgBox "ピボットテーブルが選択されていません。"
Else
pvt.Name = "新しい名前"
End If
End Sub
RangeオブジェクトのPivotTableプロパティでアクティブなピボットテーブルを表すPivotTableオブジェクトを取得して、名前を変更しています。
ローカルウィンドウでオブジェクト変数を確認しましょう
「ピボットテーブル名を変更する vba」
「excel vba ピボットテーブルの名前を変更」
「エクセル2010 マクロ ピボットテーブル名称変更」
といった検索をなさった方には、上記のプロシージャが参考になるのではないかと思いますが、ローカルウィンドウも眺めておくことをおすすめします。
メニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示しておいて、上記のプロシージャをショートカットキー[F8]でステップ実行して、オブジェクト変数・pvtに、PivotTableオブジェクトがセットされたあとに、どのような情報を持っているのかを確認しておきましょう。
オブジェクト変数・pvtから、たくさんの情報を取得できるため、ローカルウィンドウを見慣れていない方はどこを見たらいいのか戸惑うかもしれませんが、まずは上記プロシージャで利用しているNameプロパティを、それから意味のわかりやすい、SourceDataプロパティ、RefreshDateプロパティあたりを見てみましょう。
Home » エクセルマクロ・Excel VBAの使い方 » ピボットテーブル » VBAでピボットテーブルの名前を変更する