馬震安
在PPT中實現(xiàn)圖表的交互效果可不是一件輕松的事,但如果使用一小段VBA代碼,將Excel數(shù)據(jù)與圖表連接起來,不輕松的事也變得輕松了。有了Excel數(shù)據(jù)與圖表的連接,通過表單控件中的下拉菜單就可以在圖表中根據(jù)菜單選擇,突出顯示所需要的數(shù)據(jù)圖表(圖1)。
1. 插入PPT圖表
新建空白幻燈片文件,選擇“插入”選項卡,點擊“對象”,在彈出的窗口中選擇“新建”,選定對象類型中的“Microsoft Excel Chart”,確定后,就會打開一個Excel窗口,在Chart1中右擊圖表,選擇“更改圖表類型”,在彈出的窗口中選擇所需要的折線圖;再點擊與這個圖表數(shù)據(jù)相關(guān)聯(lián)的Sheet1工作表,在工作表中輸入或粘貼好自己所需要的數(shù)據(jù),這樣圖表也會根據(jù)輸入的數(shù)據(jù)發(fā)生相應的改變(圖2)。
在Sheet1工作表的相應空白單元格(如A13),設置一個下拉菜單。選定A13,選擇“數(shù)據(jù)”選項卡,點擊“數(shù)據(jù)驗證”下的“數(shù)據(jù)驗證”,在彈出窗口“設置”選項卡的允許處選擇“序列”,來源處選擇A2:A11單元格區(qū)域,這樣就在A13單元格形成了一個下拉菜單。接下來,在B13單元格中輸入“=INDEX(B2:B11,MATCH($A$13,$A$2:$A$11,0))”,這樣就會根據(jù)A13單元格的值在B13得到相應產(chǎn)品1月份的銷售值。拖動向右填充到M13,從而得到產(chǎn)品在1月-12月的銷售值(圖3)。
接下來,點擊Chart1,切換到圖表工作表,分別右擊每個折線圖,選擇“設置數(shù)據(jù)系列格式”,將它們的顏色設置為灰色;右擊圖表,選擇“選擇數(shù)據(jù)”,在彈出的窗口圖例項處點擊“添加”,在新彈出的窗口系列名稱處輸入“突出顯示”,在系列值處選擇Sheet1中的B13:M13單元格區(qū)域,將新添加的折線圖顏色設置為紅色、2磅,刪除圖例(圖4)。
2. 設置下拉列表控件
在Excel編輯窗口,點擊Chart1,使圖表窗口處于當前窗口。在空白處單擊后,就會回到PPT編輯窗口。選擇“開發(fā)工具”選項卡,點擊控件中的“列表框”,在幻燈片的合適位置,拖動鼠標畫出一個列表框,選中此列表框,點擊“屬性”,在彈出的窗口中設置好BackColor、BorderColor等代表背景色和前景色的屬性(圖5)。
3. 插入VBA代碼
在“開發(fā)工具”選項卡中點擊“Visual Basic”,在彈出窗口的編輯區(qū)中輸入如下V BA代碼(圖6)(代碼下載: https://pan. baidu.com/s/1c1BYXB6,密碼: mf89)。
Option Explicit
聲明公共變量
Dim W b As Object, Sh As Object, SouceRng As Object, TarCell As Object
Private Sub ListBox1_GotFocus()
Dim i As Integer
Set Wb = Me.Shapes(1). OLEFormat.Object
Set Sh = Wb.worksheets("Sheet1")
Set SouceRng = Sh.Range("A2:A11")
Set TarCell = Sh.Range("A13")
With ListBox1
If .ListCount > 0 Then
建立VBA代碼后,就在列表框ListBox1與圖表間建立了聯(lián)系,而這個聯(lián)系實際上是列表框與Sheet1工作表中單元格之間建立的聯(lián)系,當列表框所選值發(fā)生變化時,就會把該值傳遞給Sheet1中的A13單元格,A13的值變化了,那么相應的B13:M13的值也會發(fā)生相應的變化,從而圖表中突出顯示的折線也就發(fā)生相應的變化。
以上操作完成后,可以利用文本框給圖表添加上標題(當然也可以在Excel中利用“添加圖表元素”來操作),利用形狀填充、形狀輪廓等進行美化設置;而對于列表框則可以利用它的屬性對話進行進一步設置。
最后,在保存文件時,保存類型處要選擇“啟用宏的Power Point演示文稿(*.pptm)”(這里指的是在PowerPoint 2016中制作時),而在其他低版本中制作要設置自己的宏安全性為“低”。endprint