[英]Two shape merge as union using vba in powerpoint
我正在嘗試通過使用union屬性將兩個相同的形狀合並為一個。 編譯代碼時,它顯示對象“命令欄”的方法“ executemso”失敗。 我是vba的新手,所以如果有人幫助我解決這個問題,那就太好了。
Sub ShapesUnion()
Dim sld As Slide
Dim shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.Fill.Type = msoFillSolid Then
With shp.Duplicate
.Left = shp.Left
.Top = shp.Top
End With
End If
shp.Select
CommandBars.ExecuteMso ("ShapesUnion")
Next
Next
End Sub
您可以使用MergeShapes
方法來實現此目的:
Dim shp1 As Shape
Dim shp2 As Shape
Set shp1 = ActivePresentation.Slides(1).Shapes.AddShape(msoShapeOval, 100, 100, 50, 50)
Set shp2 = ActivePresentation.Slides(1).Shapes.AddShape(msoShapePie, 100, 100, 50, 50)
Call ActiveWindow.Selection.SlideRange(1).Shapes.Range(Array(shp1.ZOrderPosition, shp2.ZOrderPosition)).MergeShapes(msoMergeCombine)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.