ピボットテーブルの備忘録 ① バージョン
テーブルと併せ、最近頻繁にピボットテーブルをマクロで操作している。
そこで今回、備忘録を兼ね、ピボットテーブルについてもまとめてみる。
マクロでピボットテーブルを作成するようになって、結構な頻度で発生したのが「ピボットテーブルのバージョン違いによるエラー」だ。
職場のExcelは、今でこそほぼバージョンが揃っているが、昔は2010と2013が半々の割合で混在していた。
一方、マクロの記録でピボットテーブルを作成すると、ある引数が必ず登場する。↓ の例で、確認してみよう。
・集計元の表(テーブル)
・集計結果の表(ピボットテーブル)
・マクロの記録
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Table_20200302_235127", Version:=6).CreatePivotTable TableDestination:= _ "Sheet2!R3C1", TableName:="ピボットテーブル11", DefaultVersion:=6
上記の例で言えば、この部分で、いつも苦しめられていた。
DefaultVersion:=6
この数字(「6」)は、ピボットテーブルのバージョンがExcel2016版であることを表している。
従って、他の端末で実行した場合にExcelのバージョンが異なれば、エラーになる恐れがあるのだ。
docs.microsoft.com
そこで個人的に数年前から、ピボットテーブル作成マクロには、必ずこれを添えるようにしている。
Public Property Get PvtVersion() As Long Select Case CLng(Application.Version) ' 2010の場合。 Case 14 PvtVersion = xlPivotTableVersion14 ' 2013の場合。 Case 15 PvtVersion = xlPivotTableVersion15 ' 2016の場合。 Case 16 PvtVersion = 6 End Select End Property
すると先程の部分は、このような記載になる。
Excelのバージョンに対応するピボットテーブルのバージョンを、自動的にセットしてくれる。
DefaultVersion:=PvtVersion
おかげさまで、バージョン違いに起因するエラーは無くなった。しかしここから、苦難の連続が始まったわけで。
明日に続きます。
参考まで。