ممکن است نیاز داشته باشید که به طور معمول گرافیک های سند خود را با درصد معینی مقیاس کنید. استفاده از ابزارهای نواری برای انجام مقیاسبندی میتواند خستهکننده باشد، بنابراین ممکن است بخواهید مقیاس را با استفاده از یک ماکرو انجام دهید که میتوانید آن را به دکمه نوار ابزار دسترسی سریع یا کلید میانبر اختصاص دهید. ماکرو زیر با انجام مقیاسبندی بسیار خوب عمل میکند:
Sub PictSize() Dim PercentSize As Integer PercentSize = InputBox("Enter percent of full size", _ "Resize Picture", 75) If Selection.InlineShapes.Count > 0 Then Selection.InlineShapes(1).ScaleHeight = PercentSize Selection.InlineShapes(1).ScaleWidth = PercentSize Else Selection.ShapeRange.ScaleHeight Factor:=(PercentSize / 100), _ RelativeToOriginalSize:=msoCTrue Selection.ShapeRange.ScaleWidth Factor:=(PercentSize / 100), _ RelativeToOriginalSize:=msoCTrue End If End Sub
ماکرو ابتدا درصدی را میپرسد که میخواهید تصویر انتخابشده را بر اساس آن مقیاس کنید و ۷۵ (۷۵%) را بهعنوان پیشفرض ارائه میدهد. وقتی درصدی را مشخص میکنید، ماکرو بررسی میکند که آیا گرافیک انتخابشده یک گرافیک درون خطی است یا یک گرافیک شناور. دلیل انجام این کار این است که مشخصات شیء در هر مورد و همچنین نحوه تعیین مقیاس بندی متفاوت است. اشیاء درون خطی متعلق به مجموعه InlineShapes هستند، در حالی که اشیاء شناور با استفاده از شی ShapeRange تنظیم می شوند.
اگر میخواهید اندازه تمام گرافیکهای سندتان را به همان درصد تغییر دهید، فقط باید ماکرو بالا را طوری تغییر دهید که از هر یک از گرافیکهای درون خطی و سپس هر یک از گرافیکهای شناور عبور کند.
Sub AllPictSize() Dim PercentSize As Integer Dim oIshp As InlineShape Dim oshp As Shape PercentSize = InputBox("Enter percent of full size", _ "Resize Picture", 75) For Each oIshp In ActiveDocument.InlineShapes With oIshp .ScaleHeight = PercentSize .ScaleWidth = PercentSize End With Next oIshp For Each oshp In ActiveDocument.Shapes With oshp .ScaleHeight Factor:=(PercentSize / 100), _ RelativeToOriginalSize:=msoCTrue .ScaleWidth Factor:=(PercentSize / 100), _ RelativeToOriginalSize:=msoCTrue End With Next oshp End Sub