shapes.AddConnector(Type, BeginX, BeginY, EndX, EndY)


Draws a connector line and returns the connector’s Shape object.




An msoConnectorType constant. Can be msoConnectorElbow, msoConnectorTypeMixed, msoConnectorCurve, or msoConnectorStraight.


The horizontal coordinate of the start of the connector line.


The vertical coordinate of the start of the connector line.


The horizontal coordinate of the end of the connector line.


The vertical coordinate of the end of the connector line.

You can set the begin and end coordinates to an arbitrary value, then use the BeginConnect and EndConnect methods to connect two objects. Using the RerouteConnections method creates the shortest path between the objects. The following code demonstrates using those methods to connect two shapes as shown in Figure 18-13:

Sub QuickConnect( )
    Dim s1 As Shape, s2 As Shape, conn As Shape
    ' Create a shape
    Set s1 = ActiveSheet.Shapes.AddShape(msoShapeCube, 100, 10, 50, 60)
    ' Create another shape
    Set s2 = ActiveSheet.Shapes.AddShape(msoShapeCan, 50, 100, 50, 60)
    ' Create connector with arbitrary coordinates
    Set conn = ActiveSheet.Shapes.AddConnector(msoConnectorCurve, 1, 1, 1, 1)
    ' Connect shapes
    conn.ConnectorFormat.BeginConnect s1, 1
    conn.ConnectorFormat.EndConnect s2, 1
    ' Connect via shortest path (changes connection sites)
End Sub

Figure 18-13. Creating a connection

Get Programming Excel with VBA and .NET now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.