Shapes (Shape)![]() |
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 forma | Esquema de numeração de sites de conexão |
---|---|
AutoFormas, WordArt, figuras e objetos OLE | Os sites de conexão são numerados começando pela parte superior e prosseguindo em sentido anti-horário. |
Formas livres | Os 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