Método ShapeRange.Distribute (Publisher)
Distribui igualmente as formas no intervalo de formas especificado.
Sintaxe
expressão. Distribuir (DistributeCmd, RelativeTo)
Expressão Uma variável que representa um objeto ShapeRange .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
DistributeCmd | Obrigatório | MsoDistributeCmd | Especifica se as formas devem ser distribuídas horizontal ou verticalmente. Pode ser uma das constantes MsoDistributeCmd declaradas na biblioteca de tipos do Microsoft Office. |
RelativeTo | Obrigatório | MsoTriState | Especifica se as formas devem ser distribuídas igualmente por todo o espaço horizontal ou vertical na página ou dentro do espaço horizontal ou vertical que o intervalo de formas ocupa originalmente. |
Comentários
As formas são distribuídas de maneira que haja uma quantidade igual de espaço entre uma forma e a próxima. Se as formas forem tão grandes que se sobreponham quando forem distribuídas pelo espaço disponível, serão distribuídas de maneira que haja uma quantidade igual de sobreposição entre uma forma e a próxima.
O parâmetro RelativeTo pode ser uma das constantes MsoTriState declaradas na biblioteca de tipos do Microsoft Office e mostradas na tabela a seguir.
Constante | Descrição |
---|---|
msoFalse | Distribui as formas dentro do espaço horizontal ou vertical que o intervalo de formas ocupa originalmente. |
msoTrue | Distribui as formas uniformemente sobre todo o espaço horizontal ou vertical na página. |
Quando RelativeTo é msoTrue, as formas são distribuídas para que a distância entre as duas formas externas e as bordas da página seja a mesma que a distância entre uma forma e outra. Se as formas devem se sobrepõem, as duas formas externas são movidas para as bordas da página.
Quando RelativeTo é msoFalse, as duas formas externas não são movidas; somente as posições das formas internas são ajustadas.
A ordem z das formas não é afetada por este método.
Exemplo
Este exemplo define um intervalo de formas que contém todos os AutoShapes na primeira página da publicação ativa e, em seguida, distribui horizontalmente as formas nesse intervalo.
' Number of shapes on the page.
Dim intShapes As Integer
' Number of AutoShapes on the page.
Dim intAutoShapes As Integer
' An array of the names of the AutoShapes.
Dim arrAutoShapes() As String
' A looping variable.
Dim shpLoop As Shape
' A placeholder variable for the range containing AutoShapes.
Dim shpRange As ShapeRange
With ActiveDocument.Pages(1).Shapes
' Count all the shapes on the page.
intShapes = .Count
' Proceed only if there's at least one shape.
If intShapes > 1 Then
intAutoShapes = 0
ReDim arrAutoShapes(1 To intShapes)
' Loop through the shapes on the page and add the names
' of any AutoShapes to an array.
For Each shpLoop In ActiveDocument.Pages(1).Shapes
If shpLoop.Type = msoAutoShape Then
intAutoShapes = intAutoShapes + 1
arrAutoShapes(intAutoShapes) = shpLoop.Name
End If
Next shpLoop
' Proceed only if there's at least one AutoShape.
If intAutoShapes > 1 Then
ReDim Preserve arrAutoShapes(1 To intAutoShapes)
' Create a shape range containing all the AutoShapes.
Set shpRange = .Range(Index:=arrAutoShapes)
' Distribute the AutoShapes horizontally
' in the space they already occupy.
shpRange.Distribute _
DistributeCmd:=msoDistributeHorizontally, RelativeTo:=msoFalse
End If
End If
End With
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.