2

こんにちは、NTTデータ WinActor技術支援チームです。
いつもユーザーフォーラムをご利用いただき、ありがとうございます。
 
現在ご利用になっているExcelファイルの中に、ピボットテーブルをご利用になっているファイルはありませんか。
ピボットテーブルを操作するライブラリは、同梱ライブラリとしての用意はありませんが、
スイートライブラリとして用意されています。(計10個 ※2022/4/25現在)
 
用意されているスイートライブラリは、残念ながらピボットテブールを新規作成するものはありませんので、
新規作成においては、Excelのリボン部分を「エミュレーション」によるショートカットキー操作等で行っていただかなければいけません。
 ※この方法については、別のコラムで案内させてください。
 
既存のピボットテーブルであれば、用意されているスイートライブラリが活躍します。
今回は、ピボットテーブルを操作するスイートライブラリに焦点を当てて、その種類と使用方法をご案内したいと思います。
 
Excel操作(ピボットテーブル_フィールドのラベル名変更)
 ※URL:https://winactor.biz/sweet/2021/11/30_4878.html
 
さて、前回のコラムでは 基本の設定についてご案内いたしました。
 Excelのピボットテーブル操作_スタイルの変更(スイートライブラリ)基本編
今回は応用編ということで、スクリプト変更の方法をご案内いたします。
スクリプト変更を行うと、「ピボットテーブル ツール」の「デザイン」タブのリボン内の他の設定操作もできるようになります。
このコラムでは、既存のスクリプトの一部を修正して、他の設定操作ができる方法をご案内いたします。
 
 
【注意事項】
弊社環境での動作確認は行っておりますが、
スクリプト変更を行ったライブラリは、動作保証外となってしまいますので、
ユーザー様の判断で変更を行っていただきますようお願いいたします。
また、スクリプトの変更を行うと、ライブラリの情報タブが削除されますこともご了承ください。
 
 
■「ピボットテーブル スタイルのオプション」 行見出し と 列見出し のチェック
《Excelイメージ》
 
 
《スクリプト変更前1》
Dim strFileName
Dim strSheetName
Dim strPivotName
Dim strPivotStyleTheme
Dim strPivotStyleNumber
Dim strPivotStyle
Dim strRowStripes
Dim strColumnStripes
Dim objXlsWorkbook
Dim objXlsWorksheet
Dim objPivot
Dim intErrCode
 
《スクリプト変更後1》
Dim strFileName
Dim strSheetName
Dim strPivotName
Dim strPivotStyleTheme
Dim strPivotStyleNumber
Dim strPivotStyle
Dim strRowHeaders
Dim strColumnHeaders
Dim objXlsWorkbook
Dim objXlsWorksheet
Dim objPivot
Dim intErrCode
 
 
《スクリプト変更前2》
' ====入力パラメータ取得=======================
strFileName = !ファイル名!
strSheetName = !シート名!
strPivotName = !ピボットテーブル名!
strPivotStyleTheme = !スタイル種類|淡色,中間,濃色!
strPivotStyleNumber = !スタイル番号|なし,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28!
strRowStripes = !縞模様(行)|しない,する!
strColumnStripes = !縞模様(列)|しない,する!
 
《スクリプト変更後2》
' ====入力パラメータ取得=======================
strFileName = !ファイル名!
strSheetName = !シート名!
strPivotName = !ピボットテーブル名!
strPivotStyleTheme = !スタイル種類|淡色,中間,濃色!
strPivotStyleNumber = !スタイル番号|なし,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28!
strRowHeaders = !行見出し|しない,する!
strColumnHeaders = !列見出し|しない,する!
 
 
《スクリプト変更前3》
' ====ピボットテーブルのスタイルを変更する==================================================
Set objPivot = GetPivotTable(strPivotName, objXlsWorksheet)
strPivotStyle = GetPivotStyle(strPivotStyleTheme, strPivotStyleNumber)
objPivot.TableStyle2 = strPivotStyle
If StrComp(strRowStripes,"する") = 0 Then
objPivot.ShowTableStyleRowStripes = True
Else
objPivot.ShowTableStyleRowStripes = False
End If
If StrComp(strColumnStripes,"する") = 0 Then
objPivot.ShowTableStyleColumnStripes = True
Else
objPivot.ShowTableStyleColumnStripes = False
End If
 
《スクリプト変更後3》
' ====ピボットテーブルのスタイルを変更する==================================================
Set objPivot = GetPivotTable(strPivotName, objXlsWorksheet)
strPivotStyle = GetPivotStyle(strPivotStyleTheme, strPivotStyleNumber)
objPivot.TableStyle2 = strPivotStyle
If StrComp(strRowHeaders,"する") = 0 Then
objPivot.ShowTableStyleRowHeaders = True
Else
objPivot.ShowTableStyleRowHeaders = False
End If
If StrComp(strColumnHeaders,"する") = 0 Then
objPivot.ShowTableStyleColumnHeaders = True
Else
objPivot.ShowTableStyleColumnHeaders = False
 
 
《変更後のプロパティ画面と実行後のピボットテーブルのイメージ》
 
 
 
■「レイアウト」 総計の設定
《Excelイメージ》
 
 
《スクリプト変更前1》
Dim strFileName
Dim strSheetName
Dim strPivotName
Dim strPivotStyleTheme
Dim strPivotStyleNumber
Dim strPivotStyle
Dim strRowStripes
Dim strColumnStripes
Dim objXlsWorkbook
Dim objXlsWorksheet
Dim objPivot
Dim intErrCode
 
《スクリプト変更後1》
Dim strFileName
Dim strSheetName
Dim strPivotName
Dim strPivotStyleTheme
Dim strPivotStyleNumber
Dim strPivotStyle
Dim strRowGrand
Dim strColumnGrand
Dim objXlsWorkbook
Dim objXlsWorksheet
Dim objPivot
Dim intErrCode
 
 
《スクリプト変更前2》
' ====入力パラメータ取得=======================
strFileName = !ファイル名!
strSheetName = !シート名!
strPivotName = !ピボットテーブル名!
strPivotStyleTheme = !スタイル種類|淡色,中間,濃色!
strPivotStyleNumber = !スタイル番号|なし,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28!
strRowStripes = !縞模様(行)|しない,する!
strColumnStripes = !縞模様(列)|しない,する!
 
《スクリプト変更後2》
' ====入力パラメータ取得=======================
strFileName = !ファイル名!
strSheetName = !シート名!
strPivotName = !ピボットテーブル名!
strPivotStyleTheme = !スタイル種類|淡色,中間,濃色!
strPivotStyleNumber = !スタイル番号|なし,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28!
strRowGrand = !行総計|しない,する!
strColumnGrand = !列総計|しない,する!
 
 
《スクリプト変更前3》
' ====ピボットテーブルのスタイルを変更する==================================================
Set objPivot = GetPivotTable(strPivotName, objXlsWorksheet)
strPivotStyle = GetPivotStyle(strPivotStyleTheme, strPivotStyleNumber)
objPivot.TableStyle2 = strPivotStyle
If StrComp(strRowStripes,"する") = 0 Then
objPivot.ShowTableStyleRowStripes = True
Else
objPivot.ShowTableStyleRowStripes = False
End If
If StrComp(strColumnStripes,"する") = 0 Then
objPivot.ShowTableStyleColumnStripes = True
Else
objPivot.ShowTableStyleColumnStripes = False
End If
 
《スクリプト変更後3》
' ====ピボットテーブルのスタイルを変更する==================================================
Set objPivot = GetPivotTable(strPivotName, objXlsWorksheet)
strPivotStyle = GetPivotStyle(strPivotStyleTheme, strPivotStyleNumber)
objPivot.TableStyle2 = strPivotStyle
If StrComp(strRowGrand,"する") = 0 Then
objPivot.RowGrand = True
Else
objPivot.RowGrand= False
End If
If StrComp(strColumnGrand,"する") = 0 Then
objPivot.ColumnGrand = True
Else
objPivot.ColumnGrand = False
End If
 
 
《変更後のプロパティ画面と実行後のピボットテーブルのイメージ》
 
  
 
デザインタブ リボン内の操作をショートカットキー等で行わなくても、
スイートライブラリ「Excel操作(ピボットテーブル_ピボットテーブルのスタイル変更)」のスクリプトを変更することで、操作が行えますね。
ピボットテーブルの操作の参考になりましたでしょうか。
他のピボットテーブルを操作するスイートライブラリについては、別コラムにてご案内しておりますので、そちらもご参考ください。
 
 
 
【動作検証環境】
 WinActor:Ver.7.3.1
 OS:Windows10
 Office:Microsoft Office Professional Plus 2016
 Excel:Microsoft Excel 2016
 
 
<お願い>
 本投稿に関しての問合わせにつきましては、恐れ入りますが、コメントではなく
 個別問合せにてお願いいたします。

技術支援チーム27 質問の投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。