Метод Shapes.Range (PowerPoint)
Возвращает объект ShapeRange , представляющий подмножество фигур в коллекции Shapes .
Синтаксис
expression. Диапазон (индекс)
выражение: переменная, представляющая объект Shapes.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Индекс; | Необязательный | Variant | Отдельные фигуры, которые должны быть включены в диапазон. Может быть целым числом, указывающим номер индекса фигуры, строкой , указывающей имя фигуры, или массивом, содержащим целые числа или строки. Если этот аргумент опущен, метод Range возвращает все объекты в указанной коллекции. |
Возвращаемое значение
ShapeRange
Замечания
Хотя метод Range можно использовать для возврата любого количества фигур или слайдов, проще использовать метод Item , если требуется вернуть только один член коллекции. Например, является более простым, Shapes(1)
чем Shapes.Range(1)
, и Slides(2)
проще , чем Slides.Range(2)
.
Чтобы указать массив целых чисел или строк для index, можно использовать функцию Array . Например, следующая инструкция возвращает две фигуры, указанные по имени.
Dim myArray() As Variant, myRange As Object myArray = Array("Oval 4", "Rectangle 5") Set myRange = ActivePresentation.Slides(1).Shapes.Range(myArray)
Пример
В этом примере задается шаблон заливки для фигур один и три в myDocument.
Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes.Range(Array(1, 3)).Fill _
.Patterned msoPatternHorizontalBrick
В этом примере задается шаблон заливки для фигур с именами Овал 4 и Прямоугольник 5 на первом слайде.
Dim myArray() As Variant, myRange As Object
myArray = Array("Oval 4", "Rectangle 5")
Set myRange = ActivePresentation.Slides(1).Shapes.Range(myArray)
myRange.Fill.Patterned msoPatternHorizontalBrick
В этом примере задается шаблон заливки для всех фигур на первом слайде.
ActivePresentation.Slides(1).Shapes.Range.Fill _
.Patterned Pattern:=msoPatternHorizontalBrick
В этом примере задается шаблон заливки для фигуры на первом слайде.
Set myDocument = ActivePresentation.Slides(1)
Set myRange = myDocument.Shapes.Range(1)
myRange.Fill.Patterned msoPatternHorizontalBrick
В этом примере создается массив, который содержит все автофигуры на первом слайде, использует этот массив для определения диапазона фигур, а затем распределяет все фигуры в этом диапазоне по горизонтали.
With myDocument.Shapes
numShapes = .Count
'Continues if there are shapes on the slide
If numShapes > 1 Then
numAutoShapes = 0
ReDim autoShpArray(1 To numShapes)
For i = 1 To numShapes
'Counts the number of AutoShapes on the Slide
If .Item(i).Type = msoAutoShape Then
numAutoShapes = numAutoShapes + 1
autoShpArray(numAutoShapes) = .Item(i).Name
End If
Next
'Adds AutoShapes to ShapeRange
If numAutoShapes > 1 Then
ReDim Preserve autoShpArray(1 To numAutoShapes)
Set asRange = .Range(autoShpArray)
asRange.Distribute msoDistributeHorizontally, False
End If
End If
End With
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.