簡體   English   中英

在Powerpoint中使用VBA將兩個形狀合並為並集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM