Comment créer des points dans Power Point VBA, les déplacer dans différentes directions tout en les gardant connecté avec des lignes droites?

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

Question

Il y a une chose que je veux faire dans PowerPoint VBA.

Je veux créer deux points dans la fenêtre principale - point A et le point B - par leurs coordonnées données: par exemple, A (232, 464) et B (109, 567). Je ne sais pas comment le faire dans PowerPoint VBA. Je sais comment créer une simple ligne droite. J'utilise ce code de macro pour cela:

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

Mais je ne sais toujours pas comment quel code je besoin de créer quelques points, pas de lignes.

Alors, je veux déplacer ces points en quelque sorte. Encore une fois, je sais chaud pour déplacer des lignes entières ou d'autres objets - pour que j'utilise ce code:

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

Mais je ne sais pas comment déplacer des points, surtout si je veux déplacer un point dans un sens (par exemple, le déplacer vers le haut) et l'autre point sur un chemin (par exemple, déplacez-le vers la gauche).

Pourquoi est-ce que je veux le faire? Parce que plus tard, je prévois de garder ces points « connectés » par des lignes droites, quel que soit le sens que je déplace ces points.

Si vous connaissez la réponse, s'il vous plaît partager avec moi ici.

Je vous remercie à l'avance.

Était-ce utile?

La solution

afin de créer un « point » vous utilisez la forme « ovale », à savoir un petit cercle, où vous pouvez définir la ligne et de remplissage au même, i.e..

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

je ici la propriété SchemeColor pour colorer la forme, vous pouvez bien sûr utiliser une couleur RVB explicite ainsi.

Par la suite, si vous souhaitez connecter des points avec des lignes, vous devrez soit déplacer les points et (Re) créer des lignes entre elles, ou vous utilisez la ligne en forme de point types de fin

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

Hope qui aide Bonne chance MikeD

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top