Как выделить картинку word vba

Автор RuR, 03 апреля 2020, 16:42

Для выделения всех рисунков (картинок) типа «Shape» я использую это:
ActiveDocument.Shapes.SelectAll

Как выделить все рисунки типа «InlineShape»?

Я выделяю все рисунки, чтобы затем в программе «Word» (вручную, без макроса) их оформить.



Администратор

  • Administrator
  • Сообщения: 2,254
  • Записан

В VBA нет инструмента для одновременного выделения всех рисунков типа «InlineShape», можно выделить только один рисунок.
Но можно двигаться по всем рисункам и можно обрабатывать каждый рисунок отдельно.
Но некоторые действия, какие юзер может делать в ворде, нельзя сделать в VBA. Поэтому заранее не известно, возможно ли применить к рисунку нужное оформление с помощью VBA.

Sub Макрос()

    Dim рис As InlineShape

        ‘ Движение по всем рисункам с типом «InlineShape».
    For Each рис In ActiveDocument.InlineShapes
        ‘ Отображение высоты рисунка в окне View — Immediate Window.
        Debug.Print рис.Height
    Next рис

   End Sub


Есть методы:
ConvertToInlineShape
ConvertToShape

Возможен ли перевод из InlineShape в Shape, выделение всех картинок с помощью ActiveDocument.Shapes.SelectAll, форматирование вручную, обратный перевод в InlineShape?



Администратор

  • Administrator
  • Сообщения: 2,254
  • Записан

Вот так можно перевести все рисунки типа «InlineShape» в рисунки типа «Shape»:

Макрос

Sub Макрос()

    Dim i As Long

       ‘ Движение по всем рисункам с типом «InlineShape» от последнего к первому.
        ‘ От первого к последнему не двигаемся, т.к. будет сбиваться
        ‘ порядковая нумерация рисунков типа «InlineShape».
        ‘ Т.к. после превращения рисунка типа «InlineShape» в «Shape»
        ‘ исчезнет рисунок типа «InlineShape».
    For i = ActiveDocument.InlineShapes.Count To 1 Step -1
        ActiveDocument.InlineShapes(i).ConvertToShape
    Next i

   End Sub

[свернуть]

Вот так можно перевести все рисунки типа «Shape» в рисунки типа «InlineShape»:

Макрос

Sub Макрос()

    Dim i As Long

       ‘ Движение по всем рисункам с типом «Shape» от последнего к первому.
        ‘ От первого к последнему не двигаемся, т.к. будет сбиваться
        ‘ порядковая нумерация рисунков типа «Shape».
        ‘ Т.к. после превращения рисунка типа «Shape» в «InlineShape»
        ‘ исчезнет рисунок типа «Shape».
    For i = ActiveDocument.Shapes.Count To 1 Step -1
        ActiveDocument.Shapes(i).ConvertToInlineShape
    Next i

   End Sub

[свернуть]


После превращения картинок типа «InlineShape» в картинки типа «Shape», все картинки документа оказываются на первом листе друг на друге в куче.



Администратор

  • Administrator
  • Сообщения: 2,254
  • Записан

Не обращайте на это внимание. Выделите рисунки, примените оформление и снова превратите их в InlineShape.


Спасибо, теперь все заработало!


  • Форум по VBA, Excel и Word

  • Word

  • Макросы в Word

  • Word VBA Макросы: Как выделить все рисунки (объекты) типа «InlineShape»?

Студворк — интернет-сервис помощи студентам

Всем привет.

Потребовалось выделить все картинки в очень большом файле Word, чтобы центровать их и поместить в рамку. Хочу просто выделить все картинки скриптом.
VBA не пользовался ранее.
Нашел вроде текст скрипта, но выдает ошибку.
Word 2007.
Выполняю следующую последовательность действий:
С помощью комбинации Alt+F11, Ctrl+G Перехожу в Visual basic в поле Immediate и пишут код

Visual Basic
1
2
3
Sub selectAllShapes()
   ActiveDocument.Shapes.SelectAll
End Sub

Нажимаю Enter — выдает ошибку Compile error: Invalid in Immediate pane
Что не так? Какие то проблемы при выделении, нужно что-то установить, код некоррктный?

Заранее спасибо всем за помощь.

Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.

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

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений [ 4 ]

1 28.09.2017 06:50:46

  • Выделить макросом несколько рисунков
  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Тема: Выделить макросом несколько рисунков

В файле Word имеется несколько рисунков в формате обтекание «перед текстом». Нужно выделить совместно рисунки с определенными номерами (например, 1, 3, 4, 7) и сдвинуть их.
Данный макрос выделяет только один рисунок с номером 1:

Sub Pict1()
    Dim selPic As Object
    'В переменную selPic записываем все рисунки документа, находящиеся не в тексте.
    Set selPic = ActiveDocument.Shapes
    'Выделяется рисунок с номером 1.
    selPic(1).Select
    'Рисунки нужно сдвинуть.
    Selection.ShapeRange.IncrementLeft 0.65
    Selection.ShapeRange.IncrementLeft 0.65
End Sub

Как выделить несколько рисунков с определенными номерами?
Их, вероятно, нужно включить в переменную selPic. Как это сделать?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.

2 Ответ от Alex_Gur 28.09.2017 07:15:37

  • Выделить макросом несколько рисунков
  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Re: Выделить макросом несколько рисунков

Спасибо. Нашел приемлемое решение в внешняя ссылка

Sub SelectShapeRange()
    ActiveDocument.Shapes.Range(Array(1, 3, 4, 7)).Select
    Selection.ShapeRange.IncrementLeft 0.65
    Selection.ShapeRange.IncrementLeft 0.65
End Sub

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.

3 Ответ от Alex_Gur 28.09.2017 07:35:46

  • Выделить макросом несколько рисунков
  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Re: Выделить макросом несколько рисунков

Еще вопрос в связи с этим.
Пусть выделен некоторый рисунок в формате обтекание «перед текстом».
Как узнать его номер в коллекции Shapes?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.

4 Ответ от Fck_This 28.09.2017 13:19:24

  • Выделить макросом несколько рисунков
  • Fck_This
  • генерал-полковник
  • Неактивен
  • Откуда: Минск, Беларусь
  • Зарегистрирован: 13.07.2016
  • Сообщений: 648
  • Поблагодарили: 97

Re: Выделить макросом несколько рисунков

Alex_Gur пишет:

Еще вопрос в связи с этим.
Пусть выделен некоторый рисунок в формате обтекание «перед текстом».
Как узнать его номер в коллекции Shapes?

Никогда не обращался к фигурам через VBA, но чисто логически у shapes в совокупности есть count и каждому shapes соответствует определённый ID. Если по порядку спрашивать их ID через For i = 1 To … .Count, то i будет номером.

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

Сообщений [ 4 ]

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Похожие темы

  • Как выделить объекты?
  • Как выделить картинку из Shape?
  • Как выделить все перекрестные ссылки?
  • Выделить текст, но не печатать выделение
  • Не выделить постоянную часть гиперссылки
  • Найти и выделить текст цветом
  • Выделить все вхождения стиля с заданным именем
  • Как выделить все абзацы начинающиеся с определенного символа ?

Содержание

  1. Excel как выделить все картинки на листе
  2. Как изменить сразу все картинки на листе
  3. Удаление всех объектов на листе в Excel
  4. Удаление картинок и объектов в Excel средствами программы
  5. Удаление картинок и объектов в Excel с помощью макроса VBA
  6. VBA Excel. Работа с фигурами (Shapes)
  7. Объекты для работы с фигурами
  8. Создание фигур в VBA Excel
  9. Синтаксис метода AddShape
  10. Параметры метода AddShape
  11. Константы MsoAutoShapeType
  12. Создание объекта ShapeRange
  13. Vba excel выделить все рисунки
  14. Как легко выделить все объекты (картинки и диаграммы) в Excel?
  15. Легко вставляйте несколько картинок / изображений в ячейки в Excel
  16. Выделить макросом несколько рисунков
  17. Сообщений [ 4 ]
  18. 1 Тема от Alex_Gur 28.09.2017 06:50:46
  19. Тема: Выделить макросом несколько рисунков
  20. 2 Ответ от Alex_Gur 28.09.2017 07:15:37
  21. Re: Выделить макросом несколько рисунков
  22. 3 Ответ от Alex_Gur 28.09.2017 07:35:46
  23. Re: Выделить макросом несколько рисунков
  24. 4 Ответ от Fck_This 28.09.2017 13:19:24
  25. Re: Выделить макросом несколько рисунков

Excel как выделить все картинки на листе

Как изменить сразу все картинки на листе

Если вы хотите изменить сразу все картинки, ранее вставленные на лист, надо сначала их все выделить.

После того, как вы выделили все картинки, вы можете их

  • удалить, нажав клавишу Delete
  • масштабировать, потянув мышом за угол любой картинки
  • перетащить в любую сторону сразу все картинки
  • изменить в свойствах картинки режим привязки к ячейкам, чтобы можно было сортировать / фильтровать таблицу с картинками
  • поменять любые другие свойства изображений, воспользовавшись инструментами Excel на ленте на вкладке Работа с рисунками

Для выделения всех картинок:

  1. выделяем одну любую картинку
    (если картинке назначена гиперссылка, то удерживайте клавишу Ctrl для выделения)
  2. Нажимаем Ctrl + A для выделения всех картинок на листе

Второй вариант, как выделить все картинки:

  1. Нажимаем Ctrl + G
    Появится диалоговое окно Переход, а в нём снизу — кнопка Выделить
  2. Нажимаем кнопку Выделить, выбираем опцию «Объекты», жмём ОК

Удаление всех объектов на листе в Excel

При копировании на рабочий лист Excel информации со страницы из сети Интренет периодически помимо текста вставляются ненужные картинки и различные элементы управления (кнопки, флажки и т.д.). Если их количество значительное, то удалять «вручную» окажется трудоемким процессом.

Имеется несколько способов решить данную проблему: средствами программы Excel и с помощью макроса VBA.

Удаление картинок и объектов в Excel средствами программы

В результате вставки данных со страницы Интернет-сайта скопировались ненужные картинки и элементы управления:

Чтобы удалить ненужные объекты, сначала необходимо выделить эти элементы, для этого перейдите в меню «Главная» -> «Редактирование» -> «Найти и выделить«-> «Выделение группы ячеек» (можно также кликнуть клавишу F5, а затем нажать кнопку «Выделить. «).

В открывшемся окне необходимо выбрать пункт «Объекты» и кликнуть «OK«:

В результате Excel выделит все требуемые объекты (если необходимо какие то элементы оставить, то необходимо зажать клавишу Ctrl и левой кнопкой мыши кликнуть на необходимые элементы, для снятия выделения):

Теперь осталось только нажать клавишу Delete, чтобы удалить все выделенные объекты.

Удаление картинок и объектов в Excel с помощью макроса VBA

Указанную выше проблему можно решить, написав в редакторе Visual Basic следующий макрос:

Если же необходимо удалить только картинки, тогда макрос необходимо изменить на:

Можно дополнить макрос еще одной полезной функцией — удаление гиперссылок:

Объединив два действия в одну функцию DeleteObjects будут удалены все объекты и ссылки:

В результате выполнения макроса на листе будут удалены все объекты, а гиперссылки заменятся на обычный текст.

Источник

VBA Excel. Работа с фигурами (Shapes)

Работа с фигурами в VBA Excel: создание фигур методом Shapes.AddShape, типы фигур (MsoAutoShapeType), обращение к фигурам и изменение их свойств. Примеры.

Объекты для работы с фигурами

Фигуры в VBA Excel представлены тремя объектами:

Объект Описание
Shapes Коллекция всех фигур на рабочем листе. Используется для создания новых фигур, для обращения к одной фигуре по имени и для перебора фигур циклом.
ShapeRange Коллекция нескольких фигур, аргументом которой является массив имен выбранных объектов. Используется для редактирования сразу всех фигур, входящих в эту коллекцию.
Shape Объект, представляющий одну фигуру. Используется для редактирования одной этой фигуры.

Создание фигур в VBA Excel

Фигуры в VBA Excel создаются методом Shapes.AddShape.

Синтаксис метода AddShape

Shapes — выражение, возвращающее коллекцию фигур на рабочем листе, например: ActiveSheet.Shapes.

Параметры метода AddShape

Параметр Описание
Type Константа из коллекции MsoAutoShapeType, определяющая тип создаваемой фигуры.
Left Расстояние от левой границы фигуры до левой границы табличной части рабочего листа в пунктах.. Тип данных — Single.
Top Расстояние от верхней границы фигуры до верхней границы табличной части рабочего листа в пунктах.. Тип данных — Single.
Width Ширина фигуры по внешним границам в пунктах.
Height Высота фигуры по внешним границам в пунктах.

Все параметры метода Shapes.AddShape являются обязательными.

Константы MsoAutoShapeType

Константы коллекции MsoAutoShapeType, определяющие основные типы создаваемых фигур:

Константа Значение Тип фигуры
msoShapeRectangle 1 Прямоугольник
msoShapeParallelogram 2 Параллелограмм
msoShapeTrapezoid 3 Трапеция
msoShapeDiamond 4 Ромб
msoShapeRoundedRectangle 5 Прямоугольник: скругленные углы
msoShapeOctagon 6 Восьмиугольник (октаэдр)
msoShapeIsoscelesTriangle 7 Равнобедренный треугольник
msoShapeRightTriangle 8 Прямоугольный треугольник
msoShapeOval 9 Овал
msoShapeHexagon 10 Шестиугольник (гексаэдр)
msoShapeCross 11 Крест
msoShapeRegularPentagon 12 Пятиугольник (пентаэдр)
msoShapeCan 13 Цилиндр
msoShapeCube 14 Куб
msoShapeDonut 18 Круг: прозрачная заливка (кольцо)
msoShapeLightningBolt 22 Молния
msoShapeSun 23 Солнце
msoShapeMoon 24 Месяц (луна)
msoShape5pointStar 92 Звезда: 5 точек (пятиконечная)
msoShapeCloud 179 Облако

Все доступные константы из коллекции MsoAutoShapeType смотрите на сайте разработчиков.

Создание объекта ShapeRange

Создание коллекции ShapeRange из выбранных фигур:

Источник

Vba excel выделить все рисунки

Как легко выделить все объекты (картинки и диаграммы) в Excel?

Как выбрать все объекты, например все изображения и все диаграммы? В этой статье представлены сложные способы выбора всех объектов, выделения всех изображений и простого выбора всех диаграмм на активном листе в Excel.

Вы можете применить Перейти к команда, чтобы легко выбрать все объекты. Вы можете сделать это, выполнив следующие действия:

Шаг 1: нажмите F5 , чтобы открыть Перейти к диалоговое окно.

Шаг 2: нажмите Особый в нижней части, чтобы открыть Перейти к Специальное диалоговое окно.

Шаг 3: в Перейти к специальному диалоговое окно, проверьте Объекты опцию.

Шаг 4: нажмите OK. Затем он выбирает все типы объектов на активном листе, включая все изображения, все диаграммы, все формы и т. Д.

Легко вставляйте несколько картинок / изображений в ячейки в Excel

Обычно изображения вставляются над ячейками в Excel. Но Kutools для Excel Импорт изображений Утилита может помочь пользователям Excel пакетно вставлять каждое изображение / изображение в одну ячейку, как показано ниже.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Get It Now

Кажется, нелегкий способ выбрать все изображения, кроме ручного выбора каждого из них. Фактически, макрос VB может помочь вам быстро выбрать все изображения на активном листе.

Шаг 1: Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.

Шаг 2: нажмите Вставить > Модулии вставьте следующий макрос в окно модуля.

VBA: выбрать все изображения на активном листе

Шаг 3: нажмите F5 ключ для запуска этого макроса. Затем он сразу выбирает все изображения на активном листе.

Макрос VB также может помочь вам выбрать все диаграммы на активном листе.

Шаг 1: Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.

Шаг 2: нажмите Вставить > Модулии вставьте следующий макрос в окно модуля.

VBA: выбрать все диаграммы на активном листе

Шаг 3: нажмите F5 ключ для запуска этого макроса. Этот макрос будет выбирать все виды диаграмм на активном листе в мгновение ока.

Иногда вам может потребоваться удалить все изображения, диаграммы или фигуры из текущего листа, текущей книги или указанных листов. Вы можете применить утилиту Kutools for Excel для удаления иллюстраций и объектов, чтобы легко ее заархивировать.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Get It Now

1. Нажмите Кутулс > Удалить > Удалить иллюстрации и объекты.

2. В открывшемся диалоговом окне вам необходимо:

(1) В Удалить В разделе укажите типы объектов, которые вы хотите удалить.

В нашем случае мы хотим удалить диаграммы и изображения, поэтому мы проверяем опцию Charts и опцию Pictures.

(2) В Заглянуть раздел, укажите область удаления.

В нашем случае мы хотим удалить диаграммы и изображения с нескольких указанных листов, поэтому мы проверяем Избранные листы вариант, а затем отметьте указанный лист в правом поле. Смотрите левый снимок экрана:

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Get It Now

3. Нажмите Ok кнопку.

Затем все диаграммы и изображения удаляются с указанных рабочих листов.

Источник

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

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений [ 4 ]

1 Тема от Alex_Gur 28.09.2017 06:50:46

  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Тема: Выделить макросом несколько рисунков

В файле Word имеется несколько рисунков в формате обтекание «перед текстом». Нужно выделить совместно рисунки с определенными номерами (например, 1, 3, 4, 7) и сдвинуть их.
Данный макрос выделяет только один рисунок с номером 1:

Как выделить несколько рисунков с определенными номерами?
Их, вероятно, нужно включить в переменную selPic. Как это сделать?

2 Ответ от Alex_Gur 28.09.2017 07:15:37

  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Re: Выделить макросом несколько рисунков

Спасибо. Нашел приемлемое решение в внешняя ссылка

3 Ответ от Alex_Gur 28.09.2017 07:35:46

  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Re: Выделить макросом несколько рисунков

Еще вопрос в связи с этим.
Пусть выделен некоторый рисунок в формате обтекание «перед текстом».
Как узнать его номер в коллекции Shapes?

4 Ответ от Fck_This 28.09.2017 13:19:24

  • Fck_This
  • генерал-полковник
  • Неактивен
  • Откуда: Минск, Беларусь
  • Зарегистрирован: 13.07.2016
  • Сообщений: 648
  • Поблагодарили: 97

Re: Выделить макросом несколько рисунков

Еще вопрос в связи с этим.
Пусть выделен некоторый рисунок в формате обтекание «перед текстом».
Как узнать его номер в коллекции Shapes?

Никогда не обращался к фигурам через VBA, но чисто логически у shapes в совокупности есть count и каждому shapes соответствует определённый ID. Если по порядку спрашивать их ID через For i = 1 To . .Count, то i будет номером.

Источник

Понравилась статья? Поделить с друзьями:
  • Как выделить каждую третью строку в excel
  • Как выделить исправления в word
  • Как выделить интервал ячеек в excel
  • Как выделить инициалы в excel
  • Как выделить зеленым цветом в excel