expression.Distribute(DistributeCmd, RelativeTo)
expression Required. An expression that returns one of the objects in the Applies To list.
DistributeCmd Required MsoDistributeCmd. Specifies whether shapes in the range are to be distributed horizontally or vertically.
MsoDistributeCmd can be one of these MsoDistributeCmd constants. |
msoDistributeHorizontally |
msoDistributeVertically |
RelativeTo Required MsoTriState. Not used in Microsoft Excel. Must be False.
MsoTriState can be one of these MsoTriState constants. |
msoCTrue |
msoFalse |
msoTriStateMixed |
msoTriStateToggle |
msoTrue |
Example
This example defines a shape range that contains all the AutoShapes on myDocument
and then horizontally distributes the shapes in this range. The leftmost shape retains its position.
Set myDocument = Worksheets(1)
With myDocument.Shapes
numShapes = .Count
If numShapes > 1 Then
numAutoShapes = 0
ReDim autoShpArray(1 To numShapes)
For i = 1 To numShapes
If .Item(i).Type = msoAutoShape Then
numAutoShapes = numAutoShapes + 1
autoShpArray(numAutoShapes) = .Item(i).Name
End If
Next
If numAutoShapes > 1 Then
ReDim Preserve autoShpArray(1 To numAutoShapes)
Set asRange = .Range(autoShpArray)
asRange.Distribute msoDistributeHorizontally, False
End If
End If
End With