Как создавать точки в Power Point VBA, перемещать их в разных направлениях, сохраняя при этом соединение прямыми линиями?

StackOverflow https://stackoverflow.com/questions/1705965

Вопрос

Есть одна вещь, которую я хочу сделать в PowerPoint VBA.

Я хочу создать в главном окне две точки — точку A и точку B — по заданным им координатам:например, А (232, 464) и Б (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

Надеюсь, это поможет удачи

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top