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 | MsoDistributeCmd | Specifies whether shapes in the range are to be distributed horizontally or vertically. |
RelativeTo | Required | MsoTriState | 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
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.