有時候我們要在ppt上展現動態的分析圖,像是在ppt上要呈現出樞紐分析圖,其實是不可能的。唯一的作法是自已要弄出一個類似樞紐分析圖的介面,然後用VBA操作ppt內嵌excel的樞紐分析表。
最重要的code 如下:
Private Sub OptionButton1_Click()
Dim myPresentation As PowerPoint.Presentation #定義ppt
Set myPresentation = ActivePresentation #定義ppt 是現在使用的ppt
With myPresentation.Slides("SlideA001").Shapes("Chart_Body").Chart.ChartData #設定操作物件是ppt的圖表內的圖
.Workbook.Sheets("main").PivotTables("樞紐分析表1").PivotFields("Currency").Orientation = xlHidden #把excel 內用不到的樞紐分析表欄位隱藏
.Workbook.Sheets("main").PivotTables("樞紐分析表1").PivotFields("Country").Orientation = xlHidden #把excel 內用不到的樞紐分析表欄位隱藏
With .Workbook.Sheets("main").PivotTables("樞紐分析表1").PivotFields("Sales") #只顯示要呈現的欄位
.Orientation = xlColumnField
.Position = 1
End With
End With
End Sub
當然ppt 本身要設好上面的OptionButton1, 這樣在播放ppt時,就可以動態改變圖表的內容了 。
Demo 傳送門