ShapeRange.Distribute Method (Excel)
Horizontally or vertically distributes the shapes in the specified range of shapes.
Syntax
expression .Distribute(DistributeCmd, RelativeTo)
expression A variable that represents a ShapeRange object.
Parameters
Name |
Required/Optional |
Data Type |
Description |
---|---|---|---|
DistributeCmd |
Required |
Specifies whether shapes in the range are to be distributed horizontally or vertically. |
|
RelativeTo |
Required |
Not used in Microsoft Excel. Must be False. |
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