Объект Shapes (Word)
Коллекция объектов Shape , представляющих все фигуры в документе или все фигуры во всех верхних и нижних колонтитулах документа. Каждый объект Shape представляет объект на слое рисования, например автофигуру, свободную форму, объект OLE или рисунок.
Если вы хотите работать с подмножеством фигур в документе( например, для выполнения действий только с автофигурами в документе или только с выбранными фигурами), необходимо создать коллекцию ShapeRange , содержащую фигуры, с которыми вы хотите работать.
Используйте свойство Shapes , чтобы вернуть коллекцию Shapes . В следующем примере выбираются все фигуры активного документа.
ActiveDocument.Shapes.SelectAll
Примечание
Если вы хотите выполнить что-то (например, удалить или задать свойство) для всех фигур в документе одновременно, используйте метод Range , чтобы создать объект ShapeRange , содержащий все фигуры в коллекции Shapes , а затем применить соответствующее свойство или метод к объекту ShapeRange .
Используйте один из следующих методов коллекции Shapes : Add3DModel, AddCallout, AddCurve, AddLabel, AddLine, AddOleControl, AddOleObject, AddPolyline, AddShape, AddTextbox, AddTextEffect или BuildFreeForm , чтобы добавить фигуру в документ, возвращающий объект Shape , представляющий только что созданную фигуру. В следующем примере к активному документу добавляется прямоугольник.
ActiveDocument.Shapes.AddShape msoShapeRectangle, 50, 50, 100, 200
Используйте shapes (Index), где Index — это имя или номер индекса, чтобы вернуть один объект Shape . В следующем примере выполняется горизонтальное переворачивание фигуры на активном документе.
ActiveDocument.Shapes(1).Flip msoFlipHorizontal
В этом примере по горизонтали фигура с именем "Прямоугольник 1" отображается в активном документе.
ActiveDocument.Shapes("Rectangle 1").Flip msoFlipHorizontal
Каждой фигуре присваивается имя по умолчанию при ее создании. Например, если добавить в документ три разных фигуры, они могут называться "Rectangle 2", "TextBox 3" и "Oval 4". Чтобы придать фигуре более понятное имя, задайте свойство Name .
Коллекция Shapes не включает объекты InlineShape . Объекты InlineShape обрабатываются как символы и размещаются как символы в строке текста. Объекты Shape привязываются к текстовому диапазону, однако могут свободно перемещаться и их можно располагать в любом месте на странице. Используйте метод ConvertToInlineShape и ConvertToShape для преобразования фигур из одного типа в другой. В встроенные фигуры можно преобразовывать только рисунки, объекты OLE и элементы ActiveX.
Свойство Count для этой коллекции в документе возвращает количество элементов только в основной истории. Чтобы подсчитать фигуры во всех колонтитулах, используйте коллекцию Фигуры с любым объектом HeaderFooter .
Справочник по объектной модели Word
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.