大众计算机学习网

专门提供各种电脑教程

ConnectorFormat 对象

Admin | 2013-2-2 10:32:51 | 被阅次数 | 3217

  ConnectorFormat 对象:包含应用于连接符的属性和方法。连接符是连到两个其他形状的连接位置的线条。如果重新排列被连接的形状,连接符的几何外形会自动调整使形状保持连接。

  使用 ConnectorFormat 对象

  使用 ConnectorFormat 属性返回一个 ConnectorFormat 对象。使用 BeginConnect 和 EndConnect 方法将连接符的两端连到文档中的其他形状。使用 RerouteConnections 方法自动查找两个形状间的最短路径。使用 Connector 属性查看形状是否为连接符。

  请注意,向 Shapes 集合添加一个连接符时会指定大小和位置,但当连接符的两端连到集合中的其他形状后,它的大小和位置会自动调整。因此,如果要将连接符连到其他形状,则最初指定的大小和位置是无用的。同样地,当连接一个连接符时,指定了形状上的连接位置;但在连接符连到形状后使用 RerouteConnections 方法会改变连接位置,使得最初选择的连接位置无用。

  以下示例向 myDocument 中添加两个矩形并且用曲线连接符连接矩形。

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

  说明:连接位置通常按下表所示的规则进行编号。

  形状类型               连接位置标号方案
  自选图形、艺术字、图片和 OLE 对象  连接位置从顶部开始按逆时针进行编号。
  任意多边形              连接位置为顶点,与顶点编号相对应。

  要算出一个复杂形状上各连接位置的编号,可以打开宏录制器并对形状进行试验操作,然后查看录下的代码;也可以创建一个形状并选中它,然后运行以下示例。这段代码将对每个连接位置进行编号并连接一个连接符。

  Set mainshape = ActiveWindow.Selection.ShapeRange(1)
  With mainshape
      bx = .Left + .Width + 50
      by = .Top + .Height + 50
  End With
  With ActiveWindow.View.Slide
      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.TextRange.Text = j
          End With
      Next j
  End With