1

我想在 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

但我不知道如何移动点,特别是如果我想以一种方式移动一个点(例如,向上移动它)而另一个方式(例如,向左移动它)移动另一个点。

我为什么要这样做?因为以后我打算让这些点通过直线“连接”起来,无论我向哪个方向移动这些点。

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

先感谢您。

4

1 回答 1

4

为了创建一个“点”,您使用“椭圆”形状,即一个小圆圈,您可以在其中将线条和填充颜色设置为相同,即

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

于 2009-11-10T08:39:12.743 回答