رون اغلب از Shapes (در واقع بیضی) برای برجسته کردن موارد در یک کاربرگ استفاده می کند. او شکل را اضافه می کند و اندازه می دهد، سپس باید رنگ شکل را به قرمز تغییر دهد و هر رنگ پر شده را حذف کند تا آنچه را که واقعاً می خواهد برجسته کند، مبهم نکند. او این مراحل را اغلب انجام میدهد، و شکی ندارد که میتوان این کار را به نحوی با یک ماکرو تسریع کرد، اما مطمئن نیست که چگونه آن را انجام دهد.
قبل از اینکه به راه حل های مبتنی بر کلان نگاه کنید، ممکن است بخواهید برخی از آنها را که نیازی به ماکرو ندارند در نظر بگیرید. به عنوان مثال، اگر بیضی خود را ایجاد کنید (به صورت دلخواه قالب بندی شده است) و سپس روی آن کلیک راست کنید، می توانید آن را به عنوان شکل پیش فرض خود تنظیم کنید. این می تواند در آینده به افزودن شکل به کتاب کار شما سرعت بخشد.
اگر چندین شکل دارید که هر کدام اندازه و رنگ متفاوتی دارند، ممکن است بخواهید آن اشکال را به سادگی در یک کتاب کار متفاوت کپی کنید. آن کتاب کار میتواند یک نگهدارنده برای آن اشکال باشد، به طوری که میتوانید در صورت نیاز آنها را به کتابهای کار دیگر کپی کنید. این یک راه عالی برای ساختن گالری خود از اشکال استاندارد است که می تواند برای سال ها استفاده شود.
اگر تصمیم دارید که ماکرو بهترین راه است، استفاده از آن برای اضافه کردن بیضی نسبتاً آسان است. در اینجا یک مورد بسیار ساده است:
Sub Custom_Oval1()
ActiveSheet.Shapes.AddShape(msoShapeOval, 150, 150, _
120, 60).Select
Selection.ShapeRange.Fill.Visible = msoFalse
With Selection.ShapeRange.Line
.DashStyle = msoLineSolid
.Weight = 3
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
End With
End Sub
این یک بیضی استاندارد، با رنگ، پر و شفافیت دلخواه را در یک مکان واحد در برگه قرار می دهد. وقتی کار تمام شد، شکل همچنان انتخاب شده است و سپس میتوانید بیضی را به جایی که میخواهید بکشید و هر گونه تنظیمی را که ممکن است لازم باشد در اندازه انجام دهید.
اگر ترجیح میدهید بیضی به جایی که میخواهید نزدیکتر باشد، میتوانید از تغییری استفاده کنید که به سلول فعال در کاربرگ نگاه میکند و بیضی را در اطراف آن سلول قرار میدهد، به اندازه ارتفاع و عرض سلول:
Sub Custom_Oval2()
Dim lLeft As Long
Dim lTop As Long
Dim lWidth As Long
Dim lHeight As Long
lLeft = ActiveCell.Left - 5
lWidth = ActiveCell.Width + 5
lTop = ActiveCell.Top
lHeight = ActiveCell.Height + 5
ActiveSheet.Shapes.AddShape(msoShapeOval, lLeft, _
lTop, lWidth, lHeight).Select
Selection.ShapeRange.Fill.Visible = msoFalse
With Selection.ShapeRange.Line
.DashStyle = msoLineSolid
.Weight = 3
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
End With
End Sub
توجه داشته باشید که این تغییر ماکرو مکان شکل را بر اساس مکان شی ActiveCell تعیین می کند. در صورت تمایل میتوانید همه موارد ActiveCell را به Selection تغییر دهید، که به اندازه بیضی اجازه میدهد تا به جای سلول فعال، در اطراف انتخاب شما تنظیم شود. همچنین توجه داشته باشید که مقادیر سمت چپ، عرض و ارتفاع کمی تنظیم شده اند تا بیضی شکل بهتری داشته باشد. ممکن است بخواهید با مقادیر مختلف تنظیم بازی کنید تا ظاهر مورد نظر خود را به دست آورید.