کپی در کلیپ بورد با VBA در اکسل (حافظه موقت clipboard)

کپی در کلیپ بورد با VBA در اکسل (حافظه موقت clipboard)

در این آموزش سعی داریم کپی در حافظه موقت با VBA یا همان کلیپ بورد را آموزش دهیم و همچنین حذف کردن محتویات کلیب بورد رو با هم بررسی کنیم. معمولا زمانی به این دستور نیاز پیدا می کنیم که رشته های متنی خود را از الگوریتم مورد نظر استخراج کرده و حالا می خواهیم آن را به نرم افزار ورد یا هر ویرایشگر دیگر به سادگی کپی و پست انتقال دهیم.

کپی در حافظه موقت با VBA در اکسل

 

افزودن کتابخانه Microsoft Forms 2.0 Object Library

در مرحله اول شما باید کتابخانه Microsoft Forms 2.0 Object Library را از طریق محیط VBA که با Alt + F11 باز می شود را به پروژه خود اضافه کنید.

  1. محیط VBA رو باز کنید.
  2. بر روی Tools > References کلیک کنید.
  3. در لیست موجود تیک گزینه Microsoft Forms 2.0 Object Library را بزنید.

 

کپی در کلیپ بورد با VBA

برای انجام کپی (Copy) در کلیب بورد لازم یک متغیر از نوع MSForms.DataObject بسازید. که DataObject پل بین شما و کلیب بورد خواهد شد.

در این مرحله در محیط VBA از با استفاده از گزینه Insert Module یک ماژول خام ایجاد کنید و کدهای زیر را در آن قرار بدین.

Sub copytoclipboard()

'PURPOSE: Copy a given text to the clipboard (using DataObject)
'SOURCE: www.TheSpreadsheetGuru.com
'NOTES: Must enable Forms Library: Checkmark Tools > References > Microsoft Forms 2.0 Object Library

Dim obj As New DataObject
Dim txt As String

'Put some text inside a string variable
  txt = "This was copied to the clipboard using VBA!"

'Make object's text equal above string variable
  obj.SetText txt

'Place DataObject's text into the Clipboard
  obj.PutInClipboard

'Notify User
  MsgBox "There is now text copied to your clipboard!", vbInformation
 
End Sub

 

چسباندن و یا پیست کردن از کلیب بورد

در مرحله قبل چگونگی قرار دادن اطلاعات در حافظه موقت یا کلیب بورد رو مرور کردیم. در این مرحله عمل (Paste) چگونگی چسباندن از کلیب بورد یا پیست کردن از کلیب بورد رو مرور می کنیم.  روش GetFromClipboard داده‌ها را از کلیپ بورد شما می‌گیرد و داده‌ها را در DataObject ذخیره می‌کند.
Sub PasteFromClipboard() 

Dim clipboard As MSForms.DataObject
Dim str1 As String 

Set clipboard = New MSForms.DataObject

clipboard.GetFromClipboard 
str1 = clipboard.GetText


End Sub

 

حذف کردن و پاک کردن کلیپ بورد

چندین روش برای پاک کردن کلیپ بورد وجود دارد. ساده‌ترین است که یک رشته خالی در کلیپ بورد قرار دهیم.

Sub ClearClipboard()

Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject

clipboard.SetText ""
clipboard.PutInClipboard

End Sub

از اینکه فرازگر را در این مقاله همرایی کردید از شما سپاسگذاریم.

مقاله پیشنهادی :

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *