Статьи из блога
Определяем тип графического объекта и его размеры
Заметка навеяна поиском решения (см. ) для применения к рисункам заданного размера по высоте. Под рисунком мы будем в общем случае понимать графический объект в тексте документа. Это может быть как вставленная в документ картинка, фотография (тип InlineShape), так и нарисованная средствами редактора Word диаграмма, автофигура или иной объект. Более подробную информацию о видах рисунков в Word можно почитать на официальном сайте Microsoft ().
В итоге родился следующий макрос, результат работы которого выглядит как простое сообщение:

Чтобы получить информацию о рисунке, необходимо выделить его и применить макрос:
Sub getSizesImage()
'Определение типа графического объекта и его размеров (высоты и ширины)
Dim h As Single
Dim w As Single
Dim hSp As Single
Dim str As String
Dim strSize As String
With Selection
Select Case .Type
Case Word.WdSelectionType.wdSelectionInlineShape
'получаем высоту объекта
h = Round(PointsToCentimeters(.InlineShapes(1).Height), 1)
'получаем ширину объекта
w = Round(PointsToCentimeters(.InlineShapes(1).Width), 1)
str = "Это рисунок (InlineShape)." & vbCr & "Его высота: " & h & " см, ширина: " & w & " см"
Case Word.WdSelectionType.wdSelectionShape
'получаем высоту объекта
h = PointsToCentimeters(.ShapeRange(1).Height)
'получаем ширину объекта
w = PointsToCentimeters(.ShapeRange(1).Width)
str = "Это объект (Shape)." & vbCr & "Его высота: " & h & " см, ширина: " & w & " см"
Case Else
str = "Это не графический объект"
End Select
End With
MsgBox str
End Sub
Рубрика: Макросы
Метки: графика | макросы
Просмотров: 26743
Подписаться на комментарии по RSS
Версия для печати
Метки: графика | макросы
Просмотров: 26743
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 3 способа очистки списка недавно открытых документов
- Абзац с цветным фоном
- Автоматическая запись макроса
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Быстрая смена ориентации страниц документа
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрый ввод текста с помощью команды =rand()
- Ввод часто повторяющихся фрагментов текста
- Вставка будущей даты
- Вставка документа с книжной ориентацией в документ с альбомной ориентацией
- Вставка завтрашней даты
- Вставка изображений из указанной папки для Word 2007
- Вставка неформатированного текста
- Вставка скопированного текста в предопределенном формате
- Вставка текста с полями в нижний колонтитул
- Вставка текста с помощью кнопки
- Выделение видимой части экрана
- Двойная нумерация страниц в документе
- Задать обтекание текстом для всех рисунков в документе
- Замена жаргонных слов в тексте
- Замена знаков абзаца на пробелы в выделенном тексте
- Замена текста в скобках на пробел

Форум
Читают
Обсуждают
страницы
сайты
статистика
Комментариев: 2
Разделение изображений, используемых в Microsoft Word, на графические объекты и рисунки, описанное на официальном сайте Microsoft, никак не совпадает с разделением на классы Shape и InlineShape. Помимо этого в интерфейсе пользователя и в справке Microsoft Word используется еще одно разделение на встроенные и перемещаемые объекты.
Например, любой объект InlineShape (им может быть рисунок, диаграмма или объект WordArt), находящийся в основном тексте документа или в колонтитуле и не содержащийся в объекте Shape, можно обратимо преобразовать в объект Shape, при этом вид его не изменится и он не обязательно при этом станет перемещаемым.
Заметив путаницу, возникающую при классификации изображений в Microsoft Word, я специально написал небольшую статью об объектах Shape и InlineShape и о работе с ними средствами VBA на странице markros.ru/graphics/.
Марк, спасибо что напомнили. Я все хотел дать ссылку на вашу статью в виде отдельной заметки. И после вашего комментария я это сделал:
http://wordexpert.ru/page/obrabotka-grafiki-v-microsoft-word-sredstvami-vba.