فرانسوا یک دسته نظرات در یک کاربرگ دارد و هر نظر حاوی یک تصویر به عنوان پس زمینه است. او میخواهد آن تصاویر پسزمینه را از کامنتها حذف کند و بهجای آن، آنها را بهعنوان گرافیک در سلولهای سمت راست محل قرارگیری نظرات قرار دهد.
تنها راه برای انجام این کار با کمک یک ماکرو است. دلیل آن این است که نمی توانید به صورت دستی هر گرافیکی را که در پس زمینه یک نظر ذخیره شده است انتخاب و کپی کنید. شما می توانید در یک ماکرو، تصویر را به طور تقریبی "گرفتن" کنید:
Sub CommentPictures()
Dim cmt As Comment
Dim rCell As Range
Dim bVisible As Boolean
For Each cmt In ActiveSheet.Comments
With cmt
bVisible = .Visible
.Visible = True
Set rCell = .Parent.Offset(0, 1)
.Shape.CopyPicture _
Appearance:=xlScreen, Format:=xlPicture
rCell.PasteSpecial
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.Width = rCell.Width
Selection.Height = rCell.Height
.Visible = bVisible
.Shape.Fill.OneColorGradient msoGradientFromCenter, 1, 1
End With
Next cmt
End Sub
ماکرو از هر نظر در کاربرگ فعال عبور می کند. کل نظر (از جمله پسزمینه) بهعنوان یک تصویر گرافیکی در کلیپ بورد کپی میشود، سپس در سلول مورد نظر قرار میگیرد. پسزمینه نظر پسازآن بهجای تصویر، روی یک پر متفاوت تنظیم میشود.
باید توجه داشته باشید که این رویکرد تنها تقریبی از گرفتن تصویر پس زمینه را ارائه می دهد. همچنین در کپی کردن کل کامنت به صورت گرافیکی، هر متنی را که در کامنت موجود است کپی می کند.