[英]VBA - How to select specific charts in excel and paste them on single slide in power point
[英]VBA: Positioning 3 Graphs On A Single Power Point Slide
我有 VBA 腳本,可將 3 個圖形導出到我創建的現有 powerpoint 模板中的單個幻燈片的正文中。 我的問題是我不確定如何正確定位這些圖形,以便它們並排放置。 我一直在想辦法解決這個問題,並且我一直在嘗試制定一個 For 語句,以增加每個圖形的圖形位置。
我最近的嘗試:
On Error Resume Next
Set PowerPointApp = GetObject(class:="PowerPoint.Application")
If PowerPointApp Is Nothing Then Set PowerPointApp = CreateObject(class:="PowerPoint.Application")
On Error GoTo 0
Application.ScreenUpdating = False
Set myPresentation = PowerPointApp.Presentations.Open(Filename:="X:\xxx\yyy.pptx")
'For i = 1 To Worksheets("Graphs").ChartObjects.Count
'Set cht = Worksheets("Graphs").ChartObjects(i)
MySlideArrayc = Array(12)
MyRangeArrayc = Array(Worksheets("Graphs").ChartObjects("A"), Worksheets("Graphs").ChartObjects("B"), Worksheets("Graphs").ChartObjects("CC"))
For xc = LBound(MySlideArrayc) To UBound(MySlideArrayc)
'Copy Excel Range
MyRangeArrayb(xc).CopyPicture
Set shpc = myPresentation.Slides(MySlideArrayc(xc)).Shapes.Paste
Next
Next xc
myPresentation.Slides(Worksheets("Graphs").ChartObjects("A")).ShapeRange.Left = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("A")).ShapeRange.Top = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("B")).ShapeRange.Left = 150
myPresentation.Slides(Worksheets("Graphs").ChartObjects("B")).ShapeRange.Top = 150
Else
myPresentation.Slides(Worksheets("Graphs").ChartObjects("CC")).ShapeRange.Left = 300
myPresentation.Slides(Worksheets("Graphs").ChartObjects("CC")).ShapeRange.Top = 300
End If
End Sub
對於一個在另一個之上,請嘗試下一種方法:
myPresentation.Slides(Worksheets("Graphs").ChartObjects("A")).ShapeRange.Left = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("A")).ShapeRange.Top = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("B")).ShapeRange.Left = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("B")).ShapeRange.Top = 50 + _
myPresentation.Slides(Worksheets("Graphs").ChartObjects("A")).ShapeRange.Height
myPresentation.Slides(Worksheets("Graphs").ChartObjects("CC")).ShapeRange.Left = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("CC")).ShapeRange.Top = 50 + _
myPresentation.Slides(Worksheets("Graphs").ChartObjects("A")).ShapeRange.Height + _
myPresentation.Slides(Worksheets("Graphs").ChartObjects("B")).ShapeRange.Height
對於靠近另一個的,請嘗試下一種方法:
myPresentation.Slides(Worksheets("Graphs").ChartObjects("A")).ShapeRange.Left = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("A")).ShapeRange.Top = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("B")).ShapeRange.Left = 50 + _
myPresentation.Slides(Worksheets("Graphs").ChartObjects("B")).ShapeRange.Width
myPresentation.Slides(Worksheets("Graphs").ChartObjects("B")).ShapeRange.Top = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("CC")).ShapeRange.Top = 50
myPresentation.Slides(Worksheets("Graphs").ChartObjects("CC")).ShapeRange.Left = 50 + _
myPresentation.Slides(Worksheets("Graphs").ChartObjects("A")).ShapeRange.Width + _
myPresentation.Slides(Worksheets("Graphs").ChartObjects("B")).ShapeRange.Width
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.