Word shapes select all

title keywords f1_keywords ms.prod api_name ms.assetid ms.date ms.localizationpriority

Shapes.SelectAll method (Word)

vbawd10.chm161415190

vbawd10.chm161415190

word

Word.Shapes.SelectAll

2d907cfd-75ad-c29f-8ef8-85f810915ba8

06/08/2017

medium

Shapes.SelectAll method (Word)

Selects all the shapes in a collection of shapes.

Syntax

expression.SelectAll

expression Required. A variable that represents a Shapes object.

Remarks

This method does not select InlineShape objects. You cannot use this method to select more than one canvas.

Example

This example selects all the shapes in the active document.

Sub SelectAllShapes() 
 ActiveDocument.Shapes.SelectAll 
End Sub

This example selects all the shapes in the headers and footers of the active document and adds a red shadow to each shape.

Sub SelectAllHeaderShapes() 
 With ActiveDocument.ActiveWindow 
 .View.Type = wdPrintView 
 .ActivePane.View.SeekView = wdSeekCurrentPageHeader 
 End With 
 
 ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes.SelectAll 
 
 With Selection.ShapeRange.Shadow 
 .Type = msoShadow10 
 .ForeColor.RGB = RGB(220, 0, 0) 
 End With 
End Sub

See also

Shapes Collection Object

[!includeSupport and feedback]

  • Remove From My Forums
  • Question

  • hi all,

    I want to select all shapes and text from one page in Microsoft Word,now i can do this executing a VBA script in macros,but from shapes it can’t select inline shapes,i have to make all shapes inline,and i don’t
    want to do this.

    what should i do to select all shapes and text in one page including shapes which aren’t inline?

    i really appreciate your help.

    Best Regards.


    Elmira Frhn

Answers

  • Assuming the selection is already on the page of interest:
    Selection.GoTo what:=wdGoToBookmark, Name:=»page»

    Alternatively, if you haven’t yet selected the page:
    Dim Rng As Range, i As Long
    i = CLng(InputBox(«Please input the page #»))
    Set Rng = ActiveDocument.GoTo(What:=wdGoToPage, Name:=i)
    Set Rng = Rng.GoTo(What:=wdGoToBookmark, Name:=»page»)
    Rng.Select

    Note: In each case the floating shapes don’t get highlighted. That’s of no consequence as their anchors get selected anyway.


    Cheers
    Paul Edstein
    [MS MVP — Word]

    • Marked as answer by

      Monday, November 4, 2013 1:27 AM

Борис интересуется:

Как программно выделить все обьекты Shapes, например, прямоугольники, находящиеся на определённой странице документа Word?

Борис, вот пример макроса, выделяет все графические объекты shapes во всем документе:

Sub selectAllShapes()
   ActiveDocument.Shapes.SelectAll
End Sub

Если надо выделить только на определенной странице, то можно использовать такой код:

Sub selectAllShapesFromPartPage()
'Выделение всех графических объектов на определенной странице
Dim MyRange As Range
Set MyRange = ActiveDocument.Range(0, 0)  'начало диапазона
Set MyRange = MyRange.GoTo(What:=wdGoToPage, Name:="3")  'задаем номер страницы
Set MyRange = MyRange.GoTo(What:=wdGoToBookmark, Name:="page")   'переходим к заданной странице
   MyRange.ShapeRange.Select  'выделяем все spahes на данной странице
End Sub

Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Создание макроса из готового кода

Автоматическая запись макроса

UPDATE1 — Removed (only works on inline shapes)

UPDATE2 — Removed (only works on inline shapes)

UPDATE3 — Removed (Delete using the Shape’s Name not necessary the right Shape as they can all be the same)

UPDATE4 — Check and Delete using Shape’s ID.

To delete the top and bottom shapes of all the pages (be it inline with text or floating). Code below checks for the real Top Left (TL) corner and Bottom Right (BR) corner of the shape when you select it. E.G. The Block Arc here is the considered the Bottom shape instead of the Left Bracket.

enter image description here

If only the TL is of concern, then remove the lines x2 = x1 + ... and y2 = y1 + ... and replace all y2 with y1, x2 with x1 in the if end if blocks.

Sub DeleteAllTopBottomShapes()
    On Error Resume Next
    Dim aShapeTopID() As Variant ' ID of shape to delete with min vertical location
    Dim aShapeBottomID() As Variant ' ID of shape to delete with max vertical location
    Dim aShapeMinX() As Variant ' position of shape (min horizontal location)
    Dim aShapeMinY() As Variant ' position of shape (min vertical location)
    Dim aShapeMaxX() As Variant ' position of shape (max horizontal location)
    Dim aShapeMaxY() As Variant ' position of shape (max vertical location)
    Dim x1 As Single, y1 As Single ' x and y-axis values (top left corner of shape)
    Dim x2 As Single, y2 As Single ' x and y-axis values (bottom right corner of shape)
    Dim i As Long, n As Long ' counters
    Dim oSh As Shape

    'Application.ScreenUpdating = False
    ' Prepare arrays
    n = ActiveDocument.ComputeStatistics(wdStatisticPages) - 1
    ReDim aShapeTopID(n)
    ReDim aShapeBottomID(n)
    ReDim aShapeMinX(n)
    ReDim aShapeMinY(n)
    ReDim aShapeMaxX(n)
    ReDim aShapeMaxY(n)
    ' Preset the minimum axis values to max according to the pagesetup
    For i = 0 To n
        aShapeMinX(i) = ActiveDocument.PageSetup.PageHeight
        aShapeMinY(i) = ActiveDocument.PageSetup.PageWidth
    Next
    ' Search for the top and bottom shapes
    For Each oSh In ActiveDocument.Shapes
        With oSh.Anchor
            i = .Information(wdActiveEndAdjustedPageNumber) - 1
            x1 = .Information(wdHorizontalPositionRelativeToPage) + oSh.Left
            y1 = .Information(wdVerticalPositionRelativeToPage) + oSh.Top
            x2 = x1 + oSh.Width
            y2 = y1 + oSh.Height
        End With
        Application.StatusBar = "Checking Shape """ & oSh.Name & """ (ID: " & oSh.ID & ") on Page " & i + 1 & " TL:(" & x1 & ", " & y1 & ") BR:(" & x2 & ", " & y2 & ")"
        Debug.Print "Pg." & i + 1 & vbTab & "(ID:" & oSh.ID & ") """ & oSh.Name & """" & vbTab & "TL:(" & x1 & ", " & y1 & ") BR:(" & x2 & ", " & y2 & ")"
        ' Check for Top Left corner of the Shape
        If y1 < aShapeMinY(i) Then
            aShapeMinY(i) = y1
            aShapeMinX(i) = x1
            aShapeTopID(i) = oSh.ID
        ElseIf y1 = aShapeMinY(i) Then
            If x1 < aShapeMinX(i) Then
                aShapeMinX(i) = x1
                aShapeTopID(i) = oSh.ID
            End If
        End If
        ' Check for Bottom Right corner of the Shape
        If y2 > aShapeMaxY(i) Then
            aShapeMaxY(i) = y2
            aShapeMaxX(i) = x2
            aShapeBottomID(i) = oSh.ID
        ElseIf y2 = aShapeMaxY(i) Then
            If x2 > aShapeMaxX(i) Then
                aShapeMaxX(i) = x2
                aShapeBottomID(i) = oSh.ID
            End If
        End If
    Next
    Debug.Print
    ' Delete the Top and Bottom shapes
    For i = 0 To n
        If Not IsEmpty(aShapeTopID(i)) Then
            For Each oSh In ActiveDocument.Shapes
                If oSh.ID = aShapeTopID(i) Then
                    Application.StatusBar = "Deleting Top shape """ & oSh.Name & """ (ID: " & aShapeTopID(i) & ") on page " & i + 1
                    Debug.Print "Deleting Top shape """ & oSh.Name & """ (ID: " & aShapeTopID(i) & ") on page " & i + 1
                    oSh.Delete
                    Exit For
                End If
            Next
        End If
        If Not IsEmpty(aShapeBottomID(i)) Then
            For Each oSh In ActiveDocument.Shapes
                If oSh.ID = aShapeBottomID(i) Then
                    Application.StatusBar = "Deleting Bottom shape """ & oSh.Name & """ (ID: " & aShapeBottomID(i) & ") on page " & i + 1
                    Debug.Print "Deleting Bottom shape """ & oSh.Name & """ (ID: " & aShapeBottomID(i) & ") on page " & i + 1
                    oSh.Delete
                    Exit For
                End If
            Next
        End If
    Next
    Application.StatusBar = False
    Application.ScreenUpdating = True
End Sub

I checked that the ID does not change when a Shape is added or Deleted.

Screenshot of test doc (wicked it so all «Lightning Bolts» are the Top and Bottom):

Before running macro

After executed once (all the «Lightning Bolt» shapes are deleted):

1st execution

After 2nd execute (the Explosion Shape is still there but position is out of the page’s dimension — this is what floating shapes do, its actual position is relative to the Anchor):

2nd execution

Microsoft Word provides features to select multiple objects in Microsoft Word document. This article explains how to select multiple objects or shapes in the MS Word Document.

Microsoft Office 2010

Step (1). Open Microsoft Word 2010 document.

Step (2). Select multiple objects by holding Ctrl key down and mouse click on objects. This way we can select multiple objects.

If your document have so many overlapped objects, it is bit difficult to select them using mouse. Instead of this, you can select the multiple objects from Selection Pane. Following steps explain how to select multiple objects using Selection Pane.

Step (1). Click on Home tab and select Select item under Editing section. It will display a sub-menu.

Step (2). In sub-menu select Selection Pane… menu item. It will display Selection and Visibility window/pane. It will display the shapes on the current page.

Step (3). You can select multiple objects/shapes by holding Ctrl key down and mouse click on objects/shapes in the Selection and Visibility pane/window.

Another way of selecting multiple objects is by dragging the mouse over the objects with in the mouse dragged area. This is simple and easy to use feature. This feature was available in earlier versions of MS Word 2010. At the time of writing this article this feature is not available in MS Word 2010. Strange!

Following steps achieve this by converting the MS Word 2010 document to Word 97 – 2003 document type.

Step (1). Open Microsoft Word 2010 document.

Step (2). Save As the document to Word 97-20013 document type. The document may loose some of the features supported in Word 2010 document format. Be careful while converting the document to old format.

Step (3). Click on Home tab. It will display Home tab items.

Step (4). Select Select item under Editing section. It will display a sub-menu.

Step (5). In sub-menu select Select Objects menu item. This is a check menu item. Means if you click on Select Objects menu item on first time; Microsoft Word will enable you to select multiple objects. If you click on second time on Select Objects menu item; it will disable you to select multiple objects.

Step (6). Now drag your mouse pointer (by pressing left mouse button) over the objects you want to select.

Step (7). The objects which are there in the mouse dragged area will be selected and you can do operations on multiple selected objects or shapes.

by Code Steps

Если вы хотите применить один тип формы ко всем фигурам в документе, первое и самое важное — это выбрать все фигуры в документе. Нет простого способа быстро выделить все фигуры в документе, но с Kutools for WordАвтора Выбрать фигуры Утилита, вы можете быстро выбрать все формы в документе одним щелчком мыши.

Выделить все готовые / рисованные фигуры в документе


стрелка синий правый пузырьНажмите Кутулс > Формы. Смотрите скриншот:

 выстрел выберите все формы 01


стрелка синий правый пузырьВыделить все готовые / рисованные фигуры в документе

Если вы хотите выбрать все готовые / рисованные фигуры, как показано на скриншоте ниже, вы можете быстро сделать это следующим образом:

 выстрел-выбрать-все-формы-2

1. Активируйте документ, в котором вы хотите выделить все фигуры чертежа, а затем примените утилиту, нажав Кутулс > Формы.

2. После нажатия Формы, появится окно подсказки, чтобы напомнить вам, сколько фигур будет выбрано, см. снимок экрана:

 

3. Затем щелкните OK , вы увидите, что все фигуры в текущем документе были выбраны. Смотрите скриншоты:


Это только один из инструментов Kutools for Word

литий-оранжевыйKutools for Word освобождает от выполнения трудоемких операций в Word;

литий-оранжевыйС наборами удобных инструментов для Word 2021 — 2003 и Office 365;

литий-оранжевыйПростота использования и установки в Windows XP, Windows 7, Windows 8/10/11 и Windows Vista;

Дополнительные функции  |  Скачать бесплатно  |  Купить

Комментарии (0)


Оценок пока нет. Оцените первым!

Hello pros,

I need your insights

This is following a former thread of mine, regarding Shapes in headers.

What I’m trying to do now is to select them all and convert them to inline shape.
Cause at times, when I’ve converted a PDF to Word, it gives me a bunch of different types of Textboxes in headers and at times footers.

I have a wonderful Script to extract the content of the Headers, however, if in other than Inline or if they are different, it or they get’s deleted. So I loose my texts.

My Test, in a Header, I’ve put a 7 Text box (1 under each other), for every Wrape Type there is. In this test, it’s the only Header, so Primary. It might be different in live documents though.

I found a script but modified it, cause I got an error message on the line of Convert to InlineShape. Maybe because a Shape was already Inline Shape, so the reason i’ve added, if wrapType is not inline, then convert to inline. Now I’m getting NO errors but it doesn’t do anything

Code:

     Dim oSec As Section
     Dim oHftr As HeaderFooter
     Dim i As Integer
     Dim oShp As Shapes

     For Each oSec In ActiveDocument.Sections
         For Each oHftr In oSec.Headers
           If oHftr.Exists Then
             For i = oHftr.range.ShapeRange.Count To 1 Step -1
             
               If oShpWrapType <> wdWrapMergeInline Then
               oHftr.range.ShapeRange.ConvertToInlineShape
               End If
         
             Next i
           End If
         Next oHftr
     Next oSec

    On Error GoTo 0

So either this can be fixed or have a way to Select all Shapes/textboxes in all Headers, so I can modify it manually in one shot, instead of manually changing them one at the time.

Am I asking the impossible you think?

Any advice, or insights would be sooooo greatly be appreciated

Cendrinne

Доброго времени суток всем читателям и подписчикам блога scriptcoding.ru. В этой статье мы рассмотрим работу с коллекцией Shapes, которая позволяет добавлять различные графические объекты в Word документ.

По сути, используя методы данной коллекции, мы можем делать вставку таких графических объектов в Word как авто-фигуры, выноски, рисунки, диаграммы, полотна и многое другое. Также стоит уточнить, что по ходу статьи, под словом «фигура» будут подразумеваться все графические Word объекты (полотно, WordArt, SmartArtи так далее). Я не привожу примеров программного кода, самим программированием мы займемся, когда будет изучать по отдельности работу с каждым графическим объектом Word, которые создаются с помощью коллекции Shapes.

Содержание

  1. Коллекция Shapes – графические объекты в Word
  2. Shapes – свойства, работа с графическими объектами Word
  3. Shapes — методы, создание графических объектов в Word

Коллекция Shapes – графические объекты в Word

Shapes – свойства, работа с графическими объектами Word

Count— Возвращает количество фигур в коллекции.

Shapes — методы, создание графических объектов в Word

работа с графическими Word объектами

Основной функционал коллекции заключается в ее методах, большинство из которых будут возвращать класс Shape, а тот в свою очередь, будет предоставлять нужные свойства для конкретной фигуры. Например, мы добавили новое полотно в документ, для обработки данного полотна используется свойство CanvasItems, которое хранит ссылку на CanvasShapes. При добавлении новой линии в документ, нам нужно обратиться к свойству Line, которое хранит ссылку на класс LineFormat, который отвечает за обработку линий. И так далее, это логично, так как у каждого графического объекта в Word, например, выноски и WordArt есть различные возможности.

AddCanvas(Left, Top, Width, Height, Anchor) — Добавляет новое полотно в документ.

Anchor – Содержит ссылку на класс Range, который представляет текст, к которому нужно привязать полотно.

AddSmartArt(Layout, Left, Top, Width, Height, Anchor) – Вставка таких графических объектов Word в активный документ, как рисунок SmartArt. Начиная с версии Word 2010.

Layout – Ссылка на класс SmartArtLayout.

AddCallout(Type, Left, Top, Width, Height) – Добавляет текстовую выноску с линиями.

Type – Данный параметр определяет тип линии. Значения константы MsoCalloutType:

  • msoCalloutOne — 1 – Горизонтальная линия слева.
  • msoCalloutTwo — 2 – Горизонтальна линия с наклоном лева.
  • msoCalloutThree — 3 – Линия состоит из двух отрезков слева (один отрезок с наклоном, а другой горизонтальный).
  • msoCalloutFour — 4 — Линия состоит из трех отрезков справа (один отрезок с наклоном, другой горизонтальный и третий вертикальный).

AddLine(BeginX, BeginY, EndX, EndY) – Рисует линию с указанными начальными и конечными координатами.

AddConnector(Type, Left, Top, Width, Height) – Рисует соединительную линию.

Type – Тип линии, значение константы MsoConnectorType:

  • msoConnectorStraight — 1 — Прямая линия.
  • msoConnectorElbow — 2 – Прямое колено.
  • msoConnectorCurve — 3 – Изогнутое колено.
  • msoConnectorTypeMixed — -2 – Смешанные значения.

AddShape(Type, Left, Top, Width, Height) – Вставка графических объектов в Word, которые представляют указанную автофигуру.

Type – Определяет тип фигуры, значение константы MsoAutoShapeType.

AddPicture(FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height) — Добавляет изображения. Возвращает класс Shape, представляющий картинку и добавляет ее в коллекцию CanvasShapes. Обязательный только первый параметр.

FileName – Путь к файлу и его имя.

LinkToFile – True – привязать изображение к файлу, из которого он был создан. False – сделать изображение независимым от файла, по умолчанию.

SaveWithDocument – True — сохранить связанный рисунок с документом. Значение по умолчанию False. Если использовать значение False, то может возникнуть ошибка. Работа с графическими Word объектами.

создание в word графических объектов

AddLabel(Orientation, Left, Top, Width, Height) — Добавляет текстовую область.

Orientation – Задает ориентацию текста. Значение константы MsoTextOrientation:

  • msoTextOrientationHorizontal — 1 — Горизонтальная.
  • msoTextOrientationUpward — 2 – Направление вверх.
  • msoTextOrientationDownward — 3 – Направление вниз.
  • msoTextOrientationVerticalFarEast — 4 – Вертикальное направление для азиатских языков.
  • msoTextOrientationVertical — 5 – Направление вниз.
  • msoTextOrientationHorizontalRotatedFarEast — 6 — Горизонтальное направление для азиатских языков.

AddTextbox(Orientation, Left, Top, Width, Height) — Добавляет текстовое поле.

AddTextEffect(PresetTextEffect, Text, FontName, FontSize, FontBold, FontItalic, Left, Top) – Создание графического объекта WordArt в Word.

PresetTextEffect – Определяет эффект текста WordArt. Значение константы MsoPresetTextEffect.

Text — Текст в WordArt.

FontName — Название шрифта, используемого в WordArt.

FontSize — Размер шрифта в пунктах.

FontBold – Содержит логическое значение, определяющее, нужно ли сделать шрифт жирным (true) или нет (false).

FontItalic — Содержит логическое значение, определяющее, сделать шрифт курсивом (true) или нет (false).

Item(index) — Возвращает отдельный класс Shape в коллекции Shapes по его индексу.

Range(index) — Возвращает ShapeRange, представляющий графические объекты в Word внутри заданного диапазона. Данный метод позволяет выбрать несколько графических Word объектов для будущей их группировки или обработки.

Index — Указывает, какие графические объекты Word должны быть включены в указанный диапазон. Может быть целое число, указывающее порядковый номер фигуры в коллекции Shapes, строка, которая определяет имя фигуры, или массив, содержащий целые числа или строки. Например:

ActiveDocument.Shapes.Range(Array("Oval 5", "Rectangle 4")).Select

SelectAll() — Выбирает все графические объекты в Word в коллекции Shapes. Этот метод не выбирает классы InlineShape. Вы не можете использовать этот метод, чтобы выбрать более одного полотна.

AddPolyline(SafeArrayOfPoints) — Добавляет открытый или закрытый полигон. Возвращает Shape, который представляет многоугольник и добавляет его в коллекцию CanvasShapes.

SafeArrayOfPoints — Массив с парами координат, которые определяют вершины и контрольные точки кривой.

AddCurve(SafeArrayOfPoints) — Возвращает Shape, который представляет кривую Безье.

BuildFreeform(EditingType, X1, Y1) – Создание свободного графического объекта в Word, вернет класс FreeformBuilder. По сути, данный метод позволяет добавить только первый узел будущей фигуры, а уже далее нужно использовать функционал класса FreeformBuilder.

EditingType – Свойства узла. Значение константы MsoEditingType:

  • msoEditingAuto — 0 – Подключение узла.
  • msoEditingCorner — 1 — Угловой узел.
  • msoEditingSmooth — 2 — Гладкий узел.
  • msoEditingSymmetric — 3 — Симметричный узел.

X1 и Y1— Определяют положение узла в пунктах.

AddChart(Style, Type, Left, Top, Width, Height, Anchor, NewLayout) — Добавляет диаграмму в документе.

Style — Стиль диаграммы, целое значение

Type — Тип диаграммы, значение константы XlChartType.

Left – Положение диаграммы в пунктах от левого края.

Top — Положение диаграммы в пунктах от верхнего края.

Width и Height — Ширина и высота в пунктах.

Anchor – Диапазон, который будет связан с графическим объектом в Word.

NewLayout — Если значение true, то график будут вставлен с помощью новых динамические правил форматирования.

AddOLEControl(ClassType, Range) – Добавляет в документ элемент управления ActiveX (ранее известный как элемент управления OLE). Возвращает InlineShape, представляющий новый элемент управления ActiveX. Чтобы изменить свойства элемента управления ActiveX, можно использовать свойство Objectкласса OLEFormat для заданной фигуры.

ClassType — Данный параметр принимает строковое значение, которое содержит имя элемента управления ActiveX. Например:

  • CheckBox — «Forms.CheckBox.1».
  • ComboBox — «Forms.ComboBox.1».
  • CommandButton — «Forms.CommandButton.1».
  • Frame — «Forms.Frame.1».
  • Image — «Forms.Image.1».
  • Label — «Forms.Label.1».
  • ListBox — «Forms.ListBox.1».
  • MultiPage — «Forms.MultiPage.1».
  • OptionButton — «Forms.OptionButton.1».
  • ScrollBar — «Forms.ScrollBar.1».
  • SpinButton — «Forms.SpinButton.1».
  • TabStrip — «Forms.TabStrip.1».
  • TextBox — «Forms.TextBox.1».
  • ToggleButton — «Forms.ToggleButton.1».

Range — Диапазон, в котором нужно разместить элемент управления ActiveX. Если этот аргумент опущен, то ActiveX размещается автоматически.

Like this post? Please share to your friends:
  • Word skills elementary учебник
  • Word shapes in microsoft word
  • Word skills adjectives opposites i can use a variety of adjectives
  • Word shake learn english
  • Word skills 4 класс