「excel vba ピボット 判断 有無」
「ピボットテーブルの有無チェック vba」
「vba ピボットテーブルが存在するか確認」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
VBA(Visual Basic for Applications)で、ピボットテーブルが存在しているかどうかを調べるには、どのようなコード(オブジェクト式)を書けばいいのか、探している方による検索です。
アクティブなシートにピボットテーブルがあるかを確認するサンプルマクロ
以下のような条件分岐文で、アクティブなシートにピボットテーブルが存在するかどうかを判定できます。
If ActiveSheet.PivotTables.Count = 0 Then
MsgBox "アクティブなシートにピボットテーブルはありません。"
Else
MsgBox "アクティブなシートにピボットテーブルがあります!"
End If
シート上のすべてのピボットテーブルを表す、PivotTablesという名前のコレクションオブジェクトが存在します。このPivotTablesコレクションに含まれる、PivotTableオブジェクトの数を返すCountプロパティを調べれば、
ピボットテーブルが存在しているのかどうかがわかります。PivotTables.Countが「0」なら、ピボットテーブルは存在していないことになります。
このPivotTablesコレクションオブジェクトを取得する、PivotTablesメソッドはWorksheetオブジェクトのメンバーですから、
Worksheetオブジェクトを取得するために、ここではActiveSheetプロパティを利用したオブジェクト式「ActiveSheet.PivotTables....」を利用しています。
アクティブなブックにピボットテーブルがあるかを確認するサンプルマクロ
アクティブなブックに、ピボットテーブルがあるかどうかを調べるなら以下のようなマクロです。
Dim sh As Worksheet
Dim n As Long ' ピボットテーブルの数
n = 0
For Each sh In Worksheets
n = n + sh.PivotTables.Count
Next sh
If n = 0 Then
MsgBox "アクティブなブックにピボットテーブルはありません。"
Else
MsgBox "アクティブなブックに、" & n & "個のピボットテーブルがあります!"
End If
PivotTablesコレクションオブジェクトは、Worksheetオブジェクトの下位オブジェクトですから、アクティブなブック上の全ワークシートに対してFor Each~Nextループを回して、
For Each sh In Worksheets
各ワークシート上のピボットテーブルの数を調べています。
n = n + sh.PivotTables.Count
- Newer:未保存のブックをアクティブにするExcelマクロ
- Older:ValidationのTypeに指定できる定数一覧
Home » エクセルマクロ・Excel VBAの使い方 » ピボットテーブル » VBAでピボットテーブルの有無を確認する