如何在Power Point VBA中创建点,在不同方向上移动它们,同时保持它们与直线连接?

如何在Power Point VBA中创建点,在不同方向上移动它们,同时保持它们与直线连接?,vba,coordinates,powerpoint,Vba,Coordinates,Powerpoint,我想在PowerPoint VBA中做一件事 我想在主窗口中创建两个点-点A和点B-通过它们的给定坐标:例如,A 232、464和B 109、567。我不知道如何在PowerPoint VBA中实现它。我知道如何创建一条简单的直线。我使用以下宏代码: Sub CreateLine() ActiveWindow.Selection.SlideRange.Shapes.AddLine(192#, 180#, 360#, 252#).Select End Sub 但我仍然不知道我需要什么代码

我想在PowerPoint VBA中做一件事

我想在主窗口中创建两个点-点A和点B-通过它们的给定坐标:例如,A 232、464和B 109、567。我不知道如何在PowerPoint VBA中实现它。我知道如何创建一条简单的直线。我使用以下宏代码:

Sub CreateLine()
    ActiveWindow.Selection.SlideRange.Shapes.AddLine(192#, 180#, 360#, 252#).Select
End Sub
但我仍然不知道我需要什么代码来创建点,而不是线

然后,我想以某种方式移动这些点。 同样,我知道热移动整行或其他对象-为此,我使用以下代码:

Sub move()
    ActiveWindow.Selection.ShapeRange.IncrementLeft 6#
End Sub
但是我不知道如何移动点,特别是如果我想把一个点移向一个方向,例如,向上移动,另一个点移向另一个方向,例如,向左移动

我为什么要这么做? 因为以后我打算用直线把这些点连接起来,不管我朝哪个方向移动这些点

如果你知道答案,请在这里与我分享


先谢谢你

为了创建一个点,您可以使用椭圆形,即一个小圆,在这里您可以将线条和填充颜色设置为相同的颜色,即

Sub DoDot()

    'create a circular shape    
    ActiveWindow.Selection.SlideRange.Shapes.AddShape(msoShapeOval, 144.5, 150.88, 11.38, 11.38).Select

    With ActiveWindow.Selection.ShapeRange

        ' color it
        .Line.ForeColor.SchemeColor = ppAccent1
        .Line.Visible = msoTrue
        .Fill.ForeColor.SchemeColor = ppAccent1
        .Fill.Visible = msoTrue
        .Fill.Solid

        ' move it
        .Top = 10
        .Left = 10

    End With
End Sub
我在这里使用了SchemeColor属性为形状着色,当然也可以使用显式RGB颜色

稍后,如果要将点与线连接,则需要移动点和线 在它们之间重新创建线,或者使用点形线端点类型

Sub LineWithEndType()
    ActiveWindow.Selection.SlideRange.Shapes.AddLine(195.62, 162.25, 439.38, 309.75).Select
    With ActiveWindow.Selection.ShapeRange
        .Line.Visible = msoTrue
        .Fill.Transparency = 0#
        .Line.BeginArrowheadStyle = msoArrowheadOval
        .Line.EndArrowheadStyle = msoArrowheadOval
        .Line.BeginArrowheadLength = msoArrowheadLong
        .Line.BeginArrowheadWidth = msoArrowheadWide
        .Line.EndArrowheadLength = msoArrowheadLong
        .Line.EndArrowheadWidth = msoArrowheadWide
    End With

End Sub
希望有帮助
好运MikeD

为了创建一个点,您可以使用椭圆形,即一个小圆,在这里您可以将线条和填充颜色设置为相同的颜色,即

Sub DoDot()

    'create a circular shape    
    ActiveWindow.Selection.SlideRange.Shapes.AddShape(msoShapeOval, 144.5, 150.88, 11.38, 11.38).Select

    With ActiveWindow.Selection.ShapeRange

        ' color it
        .Line.ForeColor.SchemeColor = ppAccent1
        .Line.Visible = msoTrue
        .Fill.ForeColor.SchemeColor = ppAccent1
        .Fill.Visible = msoTrue
        .Fill.Solid

        ' move it
        .Top = 10
        .Left = 10

    End With
End Sub
我在这里使用了SchemeColor属性为形状着色,当然也可以使用显式RGB颜色

稍后,如果要将点与线连接,则需要移动点和线 在它们之间重新创建线,或者使用点形线端点类型

Sub LineWithEndType()
    ActiveWindow.Selection.SlideRange.Shapes.AddLine(195.62, 162.25, 439.38, 309.75).Select
    With ActiveWindow.Selection.ShapeRange
        .Line.Visible = msoTrue
        .Fill.Transparency = 0#
        .Line.BeginArrowheadStyle = msoArrowheadOval
        .Line.EndArrowheadStyle = msoArrowheadOval
        .Line.BeginArrowheadLength = msoArrowheadLong
        .Line.BeginArrowheadWidth = msoArrowheadWide
        .Line.EndArrowheadLength = msoArrowheadLong
        .Line.EndArrowheadWidth = msoArrowheadWide
    End With

End Sub
希望有帮助
祝你好运,麦克

哇!!!!迈克,非常感谢你!!!!太糟糕了,我现在不能投票,因为我的声誉还不到15分。有没有其他方法可以让我把你的答案标记为完整正确的?我保证,一旦我的声誉得到15分,我会投票赞成你目前的回答。再次感谢。没关系,你已经接受了解决方案,这对我来说已经足够了。我的目标不是打破世界纪录,只是分享我可以轻松分享的东西。顺便提一下在任何Office程序中经常使用Record宏功能,它会让您快速了解一些属性和方法。哇!!!!迈克,非常感谢你!!!!太糟糕了,我现在不能投票,因为我的声誉还不到15分。有没有其他方法可以让我把你的答案标记为完整正确的?我保证,一旦我的声誉得到15分,我会投票赞成你目前的回答。再次感谢。没关系,你已经接受了解决方案,这对我来说已经足够了。我的目标不是打破世界纪录,只是分享我可以轻松分享的东西。顺便提一下在任何Office程序中经常使用Record宏功能,它会让您快速了解某些属性和方法。