Поделиться через


Метод 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


См. также

Объект Shapes

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.