Excel VBA:在单个电源点幻灯片上定位3个图形
我有一个VBA脚本,可以将3个图形导出到我创建的现有powerpoint模板中的一张幻灯片的主体中。我的问题是,我不确定如何正确定位这些图形,使它们并排排列。我一直在想一种方法,我可以这样做,我一直在努力制定一个For语句,增加每个图形的位置 我最近的尝试:Excel VBA:在单个电源点幻灯片上定位3个图形,excel,vba,powerpoint,Excel,Vba,Powerpoint,我有一个VBA脚本,可以将3个图形导出到我创建的现有powerpoint模板中的一张幻灯片的主体中。我的问题是,我不确定如何正确定位这些图形,使它们并排排列。我一直在想一种方法,我可以这样做,我一直在努力制定一个For语句,增加每个图形的位置 我最近的尝试: On Error Resume Next Set PowerPointApp = GetObject(class:="PowerPoint.Application") If PowerPointApp I
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
如果一个靠近另一个,请尝试下一种方法:
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
你能更好地解释一下“肩并肩”是什么意思吗?它们应该是一个挨着另一个,一个在另一个上面吗?如果没有上述任何一种定位,请更好地解释其含义。对不起,是的,我希望它们水平相邻,而不是一个在另一个之上。然后,尝试我在回答中的建议。