Word اطلاعات بسیار کمی را در مورد تصاویری که در اسناد خود درج می کنید نگه می دارد. این اطلاعات ضروری است تا Word بداند که چگونه تصاویر را اندازه، موقعیت و نمایش دهد. اگر می خواهید اطلاعات بیشتری در مورد تصاویر موجود در سند خود بیابید، باید در مورد نحوه ذخیره اطلاعات ورد اطلاعاتی داشته باشید.
تصاویر به عنوان یکی از دو نوع شیء گرافیکی ذخیره می شوند: اشکال منظم یا اشکال درون خطی. اشکال منظم آنهایی هستند که در لایه ترسیمی قرار دارند، برخلاف اشکال درون خطی که در لایه متن قرار دارند. هر دو نوع اشیاء با مجموعه های مختلف اشیاء ذخیره می شوند. اشکال منظم در مجموعه Shapes و اشکال درون خطی در مجموعه InlineShapes ذخیره می شوند. برای دسترسی به اطلاعات مربوط به اشیاء، فقط باید از کمی VBA استفاده کنید.
ماکرو VBA زیر سندی ایجاد می کند که اندازه تمام اشیاء گرافیکی درون یک سند را هم در نقاط و هم پیکسل ها نمایش می دهد:
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 نام اشکال درون خطی را حفظ نمی کند. هنگامی که یک شکل معمولی را در سند خود وارد می کنید (دوباره روی لایه طراحی)، سپس Word نامی مانند مستطیل 2 یا بیضی 3 به شکل اختصاص می دهد.