标签:VBA
VBA的最大优势之一是可以无缝地在Office应用程序套件之间相互调用,例如,在Excel中操作PowerPoint。本文将使用VBA复制Excel中的一个图表,将粘贴到新创建的PowerPoint中。
首先,在VBE中单击菜单“工具——引用”,在“引用”对话框中,找到并选取“Microsoft PowerPoint 16.0 Object Library”前的复选框。
图1
这将允许Excel和PowerPoint彼此交互。
下面是代码:
代码语言:javascript复制Sub CopyChartToPPT()
Dim oPPT As Object
Dim oPres As Object
Dim oSld As Object
Dim oWs As Worksheet
Dim oCht As ChartObject
Set oPPT = CreateObject("PowerPoint.Application")
Set oPres = oPPT.Presentations.Add(msoTrue)
Set oSld = oPres.Slides.Add(1, ppLayoutTitleOnly)
Set oWs = ActiveWorkbook.Worksheets(1)
Set oCht = oWs.ChartObjects(1)
oCht.Select
ActiveChart.ChartArea.Copy
oSld.Shapes.PasteSpecial link:=msoTrue
End Sub
要将单个图表放入空白PowerPoint幻灯片,可将代码中的:
Set oSld = oPres.Slides.Add(1, ppLayoutTitleOnly)
修改为:
Set oSld = oPres.Slides.Add(1, ppLayoutBlank)
简单的几行代码就可以解决需要手动的操作。如果只是复制并粘贴少数几个图表,使用手动操作很容易完成。然而,如果有几十个图表,那么使用VBA会更快且不会出错。