Cómo crear puntos en Power Point VBA, moverlos en diferentes direcciones mientras mantiene conectados con líneas rectas?
-
19-09-2019 - |
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.
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