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

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

対象:Excel2007, Excel2010, Excel2013

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

[スポンサードリンク]

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

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

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

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

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

サンプルマクロの解説

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

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

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

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

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

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

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

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

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

最終更新日時:2020-03-27 03:01

[スポンサードリンク]

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

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

検索


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

.