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 O’Reilly online learning.

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