如何根据两个选定形状的属性添加自定义形状(VBA、PowerPoint)?

问题描述 投票:0回答:1

用户会标记两个形状,当我运行宏时,我希望在两个选定的形状之间添加一个形状。

新形状将与形状的 2 个内角对齐。我怎样才能实现这个目标?

这是一个示例(蓝色 = 新形状;黑色 = 选定的用户形状):

vba macros powerpoint
1个回答
0
投票

类似这样的:

Sub Tester()
    Dim sa As Shape, sb As Shape, sld As Slide
    Dim ff As FreeformBuilder
    
    Set sld = ActivePresentation.Slides(1) 'for example
    Set sa = sld.Shapes(1)
    Set sb = sld.Shapes(2)
    
    Set ff = sld.Shapes.BuildFreeform(EditingType:=msoEditingCorner, _
                                      X1:=sa.Left + sa.Width, Y1:=sa.Top)
    ff.AddNodes msoSegmentLine, msoEditingCorner, sb.Left, sb.Top
    ff.AddNodes msoSegmentLine, msoEditingCorner, sb.Left, sb.Top + sb.Height
    ff.AddNodes msoSegmentLine, msoEditingCorner, sa.Left + sa.Width, sa.Top + sa.Height
    ff.AddNodes msoSegmentLine, msoEditingCorner, sa.Left + sa.Width, sa.Top
    ff.ConvertToShape
End Sub

之前:

之后:

© www.soinside.com 2019 - 2024. All rights reserved.