Объект Shapes (PowerPoint)
Коллекция всех объектов Shape на указанном слайде.
Каждый объект Shape представляет объект на слое рисования, например автофигуру, свободную форму, объект OLE или рисунок.
Примечание
Если вы хотите работать с подмножеством фигур в документе( например, для выполнения действий только с автофигурами в документе или только с выбранными фигурами), необходимо создать коллекцию ShapeRange , содержащую фигуры, с которыми вы хотите работать. Общие сведения о том, как работать с одной фигурой или с несколькими фигурами одновременно, см. в статье Практическое руководство. Работа с фигурами (объекты рисования).
Используйте свойство Shapes , чтобы вернуть коллекцию Shapes . В следующем примере выбираются все фигуры в активной презентации.
ActivePresentation.Slides(1).Shapes.SelectAll
Примечание
Если вы хотите выполнить что-то (например, удалить или задать свойство) для всех фигур в документе одновременно, используйте метод Rangeбез аргумента, чтобы создать объект ShapeRange , содержащий все фигуры в коллекции Shapes , а затем применить соответствующее свойство или метод к объекту ShapeRange .
Используйте метод AddCallout, AddComment, AddConnector, AddCurve, AddLabel, AddLine, AddMediaObject, AddOLEObject, AddPicture, AddPlaceholder, AddPolyline, AddShape, AddTable, AddTextbox, AddTextEffect или AddTitle, чтобы создать новую фигуру и добавить ее в коллекцию Shapes . Используйте метод BuildFreeformв сочетании с методом ConvertToShape, чтобы создать новую свободную форму и добавить ее в коллекцию. В следующем примере к активной презентации добавляется прямоугольник.
ActivePresentation.Slides(1).Shapes.AddShape Type:=msoShapeRectangle, _
Left:=50, Top:=50, Width:=100, Height:=200
Используйте фигуры (индекс), где индекс — это имя или номер индекса фигуры, чтобы вернуть один объект Shape. В следующем примере заливка задает предустановленный оттенок для фигуры в активной презентации.
ActivePresentation.Slides(1).Shapes(1).Fill _
.PresetGradient Style:=msoGradientHorizontal, Variant:=1, _
PresetGradientType:=msoGradientBrass
Используйте Shapes.Range (index), где индекс — это имя или номер индекса фигуры или массив имен фигур или номеров индексов, чтобы вернуть коллекцию ShapeRange , представляющую подмножество коллекции Shapes . В следующем примере задается шаблон заливки для фигур одной и трех в активной презентации.
ActivePresentation.Slides(1).Shapes.Range(Array(1, 3)).Fill _
.Patterned Pattern:=msoPatternHorizontalBrick
Используйте Shapes.Placeholders (index), где index — это номер заполнителя, чтобы вернуть объект Shape , представляющий заполнитель. Если у указанного слайда есть заголовок, используйте Shapes.Placeholders(1) или Shapes.Title , чтобы вернуть заполнитель заголовка. В следующем примере слайд добавляется в активную презентацию, а затем текст добавляется как к заголовку, так и к подзаголовку (подзаголовок является вторым заполнителем на слайде с этим макетом).
With ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle).Shapes
.Title.TextFrame.TextRange = "This is the title text"
.Placeholders(2).TextFrame.TextRange = "This is subtitle text"
End With
Справочник по объектной модели PowerPoint
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.