Name

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

Synopsis

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

Argument

Settings

Type

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

BeginX

The horizontal coordinate of the start of the connector line.

BeginY

The vertical coordinate of the start of the connector line.

EndX

The horizontal coordinate of the end of the connector line.

EndY

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)
    conn.RerouteConnections
End Sub

Figure 18-13. Creating a connection

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

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.