ShapeRange.Distribute method (PowerPoint)

Evenly distributes the shapes in the specified range of shapes. You can specify whether you want to distribute the shapes horizontally or vertically and whether you want to distribute them over the entire slide or just over the space they originally occupy.

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 Determines whether shapes are distributed evenly over the entire horizontal or vertical space on the slide.

Return value

Nothing

Example

This example defines a shape range that contains all the AutoShapes on the myDocument and then horizontally distributes the shapes in this range.

Set myDocument = ActivePresentation.Slides(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, msoFalse 
        End If 
    End If 
End With

See also

ShapeRange Object

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.