Home » エクセルマクロ・Excel VBAの使い方 » ピボットテーブル » ピボットテーブルをすべて削除するマクロ

ピボットテーブルをすべて削除するマクロ

対象:Excel2007, Excel2010, Excel2013

「excelvba ピボットテーブル 削除」
「エクセル マクロ ピボット 削除」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。

ピボットテーブルを削除する、Excelマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

ピボットテーブルをすべて削除するサンプルマクロ

上記の検索キーワードだけでは、どんな仕様のマクロが必要とされているのかわかりませんが、ピボットテーブルを含むワークシートを削除するマクロをご紹介しておきましょう。


Sub ピボットテーブルの含まれるワークシートをすべて削除する()
 Dim ws As Worksheet
 Dim msg As String

 msg = "アクティブブックの、ピボットテーブルの存在するワークシートを全て削除しますか?"
 If MsgBox(msg, vbYesNo) = vbNo Then Exit Sub

 Application.DisplayAlerts = False
 For Each ws In ActiveWorkbook.Worksheets
 With ws  
  If .PivotTables.Count >= 1 Then
   .Delete
  End If 
 End With
 Next ws
 Application.DisplayAlerts = True
End Sub

上記のマクロを実行すると、
「アクティブブックの、ピボットテーブルの存在するワークシートを全て削除しますか?」
というメッセージボックスが表示され、[はい]ボタンをクリックすると、アクティブなワークブックで、ピボットテーブルが存在しているワークシートが全て削除されます。

サンプルマクロの解説

アクティブなワークブックの、すべてのワークシートに対してFor Each~Nextループを回して、
 For Each ws In ActiveWorkbook.Worksheets

ワークシート上にピボットテーブルが一つでも存在していたときには、
 With ws
  If .PivotTables.Count >= 1 Then

そのワークシート自体を削除しています。
   .Delete

Worksheetオブジェクトの、PivotTablesメソッドでPivotTablesコレクションオブジェクトを取得して、

ピボットテーブルをすべて削除するExcelマクロ

PivotTablesコレクションオブジェクトのCountプロパティが1以上だったら、

ピボットテーブルをすべて削除するExcelマクロ

ピボットテーブルが存在しているので、そのWorksheetオブジェクトを削除する、というロジックです。

削除を実行するときに、
「選択したシートに、データが存在する可能性があります。データを完全に削除するには、[削除]をクリックしてください。」
メッセージが表示されないよう、ループ処理に入る前に、ApplicationオブジェクトのDisplayAlertsプロパティをFalseに設定しています。
 Application.DisplayAlerts = False

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ピボットテーブル » ピボットテーブルをすべて削除するマクロ

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » ピボットテーブル » ピボットテーブルをすべて削除するマクロ

「ピボットテーブル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.