آندرس یک عکس در کلیپ بورد دارد. او مایل است برای سلول انتخاب شده، تصویر را در یک نظر قرار دهد. اگر سلول هیچ نظری نداشته باشد، باید یکی ایجاد شود. اگر قبلاً نظری وجود دارد، باید عکس را به آن اضافه کنید. آندرس می داند که این به یک ماکرو نیاز دارد، اما مطمئن نیست که چگونه با نظرات در یک ماکرو کار کند تا آنچه را که نیاز دارد انجام دهد.
مایکروسافت، در آخرین نسخه آفیس 365، اکنون به نظرات به عنوان یادداشت اشاره می کند . با این حال، برای اهداف این نکته، من همچنان به آنها با نام نظرات سنتی اشاره می کنم .
کاری که آندرس می خواهد انجام دهد، به آسانی ممکن نیست. اولین مشکل این است که به نظر می رسد هیچ راهی در VBA برای استفاده از کلیپ بورد به عنوان منبع تصویری که برای یک نظر ارسال می شود وجود ندارد. این امکان وجود دارد که با تغییر منبع به عنوان یک تصویر در یک فایل، از این موضوع دور شوید - به عبارت دیگر، داشتن ماکرو به کاربر اجازه می دهد یک فایل تصویری را انتخاب کند که سپس در نظر قرار می گیرد.
Sub AddCommentPicture()
Dim PicChoice As Variant
If ActiveCell.Comment Is Nothing Then
ActiveCell.AddComment
End If
PicChoice = Application.GetOpenFilename("JPEGs *.jpg,*.jpg")
If PicChoice = False Then
MsgBox "No file was selected."
Else
ActiveCell.Comment.Shape.Fill.UserPicture PicChoice
ActiveCell.Comment.Shape.LockAspectRatio = True
End If
End Sub
ماکرو سلول فعال را آزمایش می کند تا ببیند نظری دارد یا خیر. اگر نه، یکی اضافه می کند. سپس یک کادر محاوره ای باز را نمایش می دهد که فقط فایل های JPG را نشان می دهد. (شما می توانید پارامتر توابع GetOpenFilename را تغییر دهید تا مشخص کنید چه نوع فایل هایی باید نمایش داده شوند.) سپس فایلی که انتخاب می کنید به نظر اختصاص داده می شود.
توجه داشته باشید که کد هیچ کاری برای تغییر اندازه تصویر انجام نمی دهد. در صورت تمایل می توانید کد لازم برای انجام تغییر اندازه را اضافه کنید. می خواهید آن کد را مستقیماً بعد از خطی که نسبت تصویر تصویر را قفل می کند، نزدیک به انتهای ماکرو اضافه کنید.