Cómo crear puntos en Power Point VBA, moverlos en diferentes direcciones mientras mantiene conectados con líneas rectas?

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

Pregunta

Hay una cosa que quiero hacer en PowerPoint VBA.

Quiero crear dos puntos en la ventana principal - punto A y punto B - por sus coordenadas dadas: por ejemplo, A (232, 464) y B (109, 567). No sé cómo hacerlo en PowerPoint VBA. Sé cómo crear una simple línea recta. Yo uso este código de macro para que:

Sub CreateLine()
    ActiveWindow.Selection.SlideRange.Shapes.AddLine(192#, 180#, 360#, 252#).Select
End Sub

Pero todavía no sé cómo lo que el código que iba a necesitar para crear sólo puntos, no líneas.

A continuación, quiero mover los puntos de alguna manera. Una vez más, sé caliente para mover líneas enteras u otros objetos - para que utilizo este código:

Sub move()
    ActiveWindow.Selection.ShapeRange.IncrementLeft 6#
End Sub

Pero no sé cómo mover puntos, especialmente si quiero mover un punto de una manera (por ejemplo, moverla hacia arriba) y el otro dot otra manera (por ejemplo, se mueve hacia la izquierda).

¿Por qué quiero hacerlo? Porque después tengo la intención de mantener esos puntos "conectados" por líneas rectas, no importa qué direcciones que se mueven esos puntos.

Si conoce la respuesta, por favor, comparta conmigo aquí.

Gracias de antemano.

¿Fue útil?

Solución

con el fin de crear un "punto" se utiliza la forma "ovalada", es decir, un pequeño círculo, donde se puede establecer la línea y los colores de relleno de la misma, es decir.

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

He utilizado la propiedad SchemeColor aquí para colorear la forma, por supuesto, puedes usar un color RGB explícita también.

Más adelante, si desea conectar los puntos con líneas, tendrá que mover bien los puntos y (Re) crear líneas de entre ellos, o bien utilizar la línea de tipos extremos en forma de puntos

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

Espero que ayude Buena suerte MikeD

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top