جری می داند که در اکسل کلیپ بوردهای متعددی موجود است. با این حال، او متعجب است که آیا راهی برای پاک کردن هر یک از کلیپ بوردها در یک ماکرو وجود دارد؟
در واقع چهار کلیپ بورد مختلف وجود دارد که می توانید در اکسل به آنها ضربه بزنید. ساده ترین آنها، کلیپ بورد واقعی اکسل است که هر زمان که مورچه ها را در اطراف محدوده انتخاب شده ای از سلول ها ببینید فعال است. این کلیپ بورد را می توان با استفاده از این خط کد واحد پاک کرد:
Application.CutCopyMode = False
کلیپ بورد دوم کلیپ بورد ویندوز است که با استفاده از کد زیر که در محیط های اکسل 32 بیتی کار می کند می توان آن را پاک کرد:
Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function EmptyClipboard Lib "user32" () As Long
Public Declare Function CloseClipboard Lib "user32" () As Long
Sub ClearClip()
OpenClipboard (0&)
EmptyClipboard
CloseClipboard
End Sub
اگر از نسخه 64 بیتی اکسل استفاده می کنید (یعنی تمام نسخه های اکسل 2019 و مایکروسافت 365)، پس باید از کدی استفاده کنید که کمی متفاوت است:
Declare PtrSafe Function OpenClipboard Lib "User32" (ByVal hwnd As LongPtr) As LongPtr
Declare PtrSafe Function EmptyClipboard Lib "User32" () As Long
Declare PtrSafe Function CloseClipboard Lib "User32" () As Long
Sub ClearClip()
OpenClipboard (0&)
EmptyClipboard
CloseClipboard
End Sub
تفاوت بین نسخه های 32 بیتی و 64 بیتی در خطوط اعلان است که همه آنها خارج از زیربرنامه واقعی ClearClip هستند.
سومین و چهارمین کلیپ بورد تاریخچه کلیپ بورد ویندوز و کلیپ بورد آفیس هستند که مشخصا کلیپ بوردهای سطح ویندوز هستند. دسترسی به آن ها از هر چیزی که تا به حال بحث شده است، سخت تر و پیشرفته تر است. البته ممکن است به پاک کردن این کلیپ بوردهای ویندوز در اکسل اهمیتی ندهید. به جای توضیح همه چیز در اینجا، ممکن است از این بحث در Stack Overflow قدردانی کنید:
https://stackoverflow.com/questions/64066265/clearing-the-clipboard-in-office-365