Word хранит довольно много информации об изображениях, которые вы вставляете в свои документы. Эта информация необходима для того, чтобы Word знал, как изменять размер, положение и отображение изображений. Если вы хотите узнать больше об изображениях в документе, вам нужно кое-что узнать о том, как Word хранит эту информацию.

Изображения хранятся в виде графических объектов двух типов: обычных или встроенных. Обычные формы — это те, которые находятся на слое рисования, в отличие от встроенных фигур, которые находятся в текстовом слое. Оба типа объектов хранятся в разных коллекциях объектов. Обычные фигуры находятся в коллекции Shapes, а встроенные фигуры хранятся в коллекции InlineShapes. Чтобы получить доступ к информации об объектах, вам просто нужно немного использовать VBA.

Следующий макрос VBA будет работать в Word 2000 (или более поздних версиях) для создания документа, который отображает размер всех графических объектов в документе как в точках, так и в пикселях:

Sub FigureInfo()

Dim iShapeCount As Integer     Dim iILShapeCount As Integer     Dim DocThis As Document     Dim J As Integer     Dim sTemp As String

Set DocThis = ActiveDocument     Documents.Add

iShapeCount = DocThis.Shapes.Count     If iShapeCount > 0 Then         Selection.TypeText Text:="Regular Shapes"

Selection.TypeParagraph     End If     For J = 1 To iShapeCount         Selection.TypeText Text:=DocThis.Shapes(J).Name         Selection.TypeParagraph         sTemp = "     Height (points): "

sTemp = sTemp & DocThis.Shapes(J).Height         Selection.TypeText Text:=sTemp         Selection.TypeParagraph         sTemp = "     Width (points): "

sTemp = sTemp & DocThis.Shapes(J).Width         Selection.TypeText Text:=sTemp         Selection.TypeParagraph         sTemp = "     Height (pixels): "

sTemp = sTemp & PointsToPixels(DocThis.Shapes(J).Height, True)

Selection.TypeText Text:=sTemp         Selection.TypeParagraph         sTemp = "     Width (pixels): "

sTemp = sTemp & PointsToPixels(DocThis.Shapes(J).Width, False)

Selection.TypeText Text:=sTemp         Selection.TypeParagraph         Selection.TypeParagraph     Next J

iILShapeCount = DocThis.InlineShapes.Count     If iILShapeCount > 0 Then         Selection.TypeText Text:="Inline Shapes"

Selection.TypeParagraph     End If     For J = 1 To iILShapeCount         Selection.TypeText Text:="Shape " & J         Selection.TypeParagraph         sTemp = "     Height (points): "

sTemp = sTemp & DocThis.InlineShapes(J).Height         Selection.TypeText Text:=sTemp         Selection.TypeParagraph         sTemp = "     Width (points): "

sTemp = sTemp & DocThis.InlineShapes(J).Width         Selection.TypeText Text:=sTemp         Selection.TypeParagraph         sTemp = "     Height (pixels): "

sTemp = sTemp & PointsToPixels(DocThis.InlineShapes(J).Height, True)

Selection.TypeText Text:=sTemp         Selection.TypeParagraph         sTemp = "     Width (pixels): "

sTemp = sTemp & PointsToPixels(DocThis.InlineShapes(J).Width, False)

Selection.TypeText Text:=sTemp         Selection.TypeParagraph         Selection.TypeParagraph     Next J End Sub

Этот макрос не работает в Word 97, поскольку Word 97 не распознает инструкцию PointsToPixels. Если вы удалите строки, в которых используется этот оператор (или создадите свою собственную функцию PointsToPixels), то макрос будет нормально работать в Word 97.

Обратите внимание, что макрос возвращает имена обычных фигур, но не имена встроенных фигур. Причина этого в том, что Word не поддерживает имена встроенных фигур. Когда вы вставляете в документ обычную фигуру (опять же, на слой рисунка), Word присваивает этой фигуре имя, например, Прямоугольник 2 или Овал 3.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (1497) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

link: / wordribbon-Determining_Picture_Size_in_a_Macro [Определение размера изображения в макросе].