在PowerPoint中使用VBA实现两个形状合并为联合 [英] Two shape merge as union using vba in powerpoint

查看:6
本文介绍了在PowerPoint中使用VBA实现两个形状合并为联合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用联合属性将两个相同的形状合并为一个。在编译代码时,它显示对象‘CommandBar’的方法‘ecutemso’失败。我是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)

这篇关于在PowerPoint中使用VBA实现两个形状合并为联合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆