Objeto ConnectorFormat

Shapes (Shape)
ConnectorFormat

Contém propriedades e métodos que se aplicam a conectores. Um conector é uma linha que anexa duas outras formas em pontos chamados sites de conexão. Se você reorganizar formas que estão conectadas, a geometria do conector será automaticamente ajustada para que as formas permaneçam conectadas.

Usando o objeto ConnectorFormat

Use a propriedade ConnectorFormat para retornar um objeto ConnectorFormat. Use os métodos BeginConnect e EndConnect para anexar as extremidades do conector a outras formas do documento. Use o método RerouteConnections para localizar automaticamente o caminho mais curto entre as duas formas conectadas pelo conector. Use a propriedade Connector para ver se a forma é um conector.

Observe que você atribui um tamanho e uma posição quando adiciona um conector à coleção Shapes, mas o tamanho e a posição são automaticamente ajustados quando você anexa o início e o fim do conector a outras formas na coleção. Portanto, se você pretende anexar um conector a outras formas, a posição e o tamanho iniciais que você especificar serão irrelevantes. Da mesma forma, você especifica a quais sites de conexão de uma forma o conector será anexado quando você anexá-lo, mas o uso do método RerouteConnections após o conector ser anexado pode alterar a quais sites de conexão o conector é anexado, tornando a sua escolha original de sites de conexão irrelevante.

O exemplo seguinte adiciona dois retângulos a myDocument e os conecta com um conector curvo.

Set myDocument = Worksheets(1)
Set s = myDocument.Shapes
Set firstRect = s.AddShape(msoShapeRectangle, 100, 50, 200, 100)
Set secondRect = s.AddShape(msoShapeRectangle, 300, 300, 200, 100)
Setc c = s.AddConnector(msoConnectorCurve, 0, 0, 0, 0)
With c.ConnectorFormat
.BeginConnect ConnectedShape:=firstRect, ConnectionSite:=1
.EndConnect ConnectedShape:=secondRect, ConnectionSite:=1
c.RerouteConnections
End With

Comentários

Os sites de conexão geralmente são numerados conforme as regras apresentadas na tabela seguinte.

Tipo de formaEsquema de numeração de sites de conexão
AutoFormas, WordArt, figuras e objetos OLEOs sites de conexão são numerados começando pela parte superior e prosseguindo em sentido anti-horário.
Formas livresOs sites de conexão são os vértices e correspondem aos números de vértice.

Para descobrir qual número corresponde a qual site de conexão em uma forma complexa, você pode experimentar com a forma enquanto o gravador de macro está ativado e examinar o código gravado; ou você pode criar uma forma, selecioná-la e executar o exemplo a seguir. Este código irá numerar cada site de conexão e anexar um conector ao mesmo.

Set mainshape = ActiveWindow.Selection.ShapeRange(1)
With mainshape
bx = .Left + .Width + 50
by = .Top + .Height + 50
End With
With ActiveSheet
For j = 1 To mainshape.ConnectionSiteCount
With .Shapes.AddConnector(msoConnectorStraight, _
bx, by, bx + 50, by + 50)
.ConnectorFormat.EndConnect mainshape, j
.ConnectorFormat.Type = msoConnectorElbow
.Line.ForeColor.RGB = RGB(255, 0, 0)
l = .Left
t = .Top
End With
With .Shapes.AddTextbox(msoTextOrientationHorizontal, _
l, t, 36, 14)
.Fill.Visible = False
.Line.Visible = False
.TextFrame.Characters.Text = j
End With
Next j
End With