آموزش اکسس

آموزش مایکروسافت اکسس - Access Training

آموزش اکسس

آموزش مایکروسافت اکسس - Access Training

آموزش اکسس

ارائه آموزش‌ها و نکات کلیدی مربوط به نرم افزار اکسس.
جزییات و نکات ریز اکسس را با ما داشته باشید و پویایی دوباره‌ای به برنامه خودتان دهید.

آخرین نظرات

بسم الله الرحمن الرحیم

سلام

 

در این آموزش سعی دارم تا نحوه کپی کردن در کلیب بورد، پیست کردن و چسباندن از کلیب بورد و حذف کردن محتویات کلیب بورد رو با هم بررسی کنیم.

برای انجام این کار چند مرحله رو باید طی کنیم تا به نتیجه مطلوب برسیم. پس تا انتهای مراحل با دقت مرور کنین.

مرحله اول: افزودن کتابخانه 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 را بزنید.

    Microsoft Forms 2.0 Object Library

  4. تایید کنید.

 

مرحله دوم: کدهای VBA کپی در کلیب بورد

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

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

' کپی رشته به کلیپ بورد'
Sub CopyToClipboard()
    Dim clipboard As MSForms.DataObject    
    Dim strSample As String

    Set clipboard = New MSForms.DataObject
    strSample = "This is a sample string"
    
    clipboard.SetText strSample
    clipboard.PutInClipboard
End Sub

 

روش SetText برای ذخیره یک رشته در DataObject استفاده می‌شود. رشته می‌تواند یک متغیر VBA باشد، (همانطور که در بالا نشان داده شد.) یا یک فیلد در فرم شما، (همانطور که در زیر نشان داده شده است.)

روش PutInClipboard قطعه کدی است که متن را در کلیپ بورد شما قرار می‌دهد.

' کپی سلول به کلیپ بورد'
Sub CopyToClipboard2()
    Dim clipboard As MSForms.DataObject
    Set clipboard = New MSForms.DataObject
    
    clipboard.SetText ActiveSheet.Range("B2")
    clipboard.PutInClipboard
End Sub

نکته:

  • در VBA تبدیل انواع داده‌ها به رشته قبل از ذخیره آنها در کلیپ بورد بسیار خوب است، بنابراین لازم نیست نگران استفاده از عملکرد CStr برای تبدیل دستی باشید.

 

مرحله سوم: چسباندن و یا پیست کردن از کلیب بورد

در مرحله قبل چگونگی قرار دادن اطلاعات در حافظه موقت یا کلیب بورد رو مرور کردیم. در این مرحله عمل (Paste) چگونگی چسباندن از کلیب بورد یا پیست کردن از کلیب بورد رو مرور میکنیم.

' بازیابی محتوای کلیپ بورد'
Sub PasteFromClipboard3()
    Dim clipboard As MSForms.DataObject
    Dim str1 As String

    Set clipboard = New MSForms.DataObject
    
    clipboard.GetFromClipboard
    str1 = clipboard.GetText
End Sub

روش GetFromClipboard داده‌ها را از کلیپ بورد شما می‌گیرد و داده‌ها را در DataObject ذخیره می‌کند.

روش GetText رشته را از DataObject می‌بُرد و آن را در متغیر رشته شما (در این مورد در متغیر رشته str1  شما با موفقیت محتوای کلیپبورد خود را به متغیر رشته ای که می تواند در ماکرو VBA شما دستکاری شود،) جا به جا کنید.

 

مرحله چهارم: حذف کردن و پاک کردن کلیپ بورد

از شما میپرسم، چطور محتوای ذخیره شده در کلیپ بورد را پاک کنیم؟

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

' قرار دادن رشته خالی در کلیپ بورد'
Sub ClearClipboard()
    Dim clipboard As MSForms.DataObject
    Set clipboard = New MSForms.DataObject
    
    clipboard.SetText ""
    clipboard.PutInClipboard
End Sub

نکته:

  • روش بهتر برای خالی کردن حافظه موقت (خالی کردن کلیپ بورد)، استفاده از کتابخانه نام آشنا user32 هست!
'  پاک کردن کامل محتویات کلیپ بورد'
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long

Sub ClearClipboard2()
    OpenClipboard (0&)
    EmptyClipboard
    CloseClipboard
End Sub

 

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

منبع: wellsr.com

  • میـMiRـزا
  • http://access-training.blog.ir/post/37

ClipBoard

حافظه موقت

کلیپبورد

نظرات  (۱)

البته یک راه خیلی آسون تر هم برای انجام کپی هست:
Me.txtFilde.SetFocus
DoCmd.RunCommand acCmdCopy
پاسخ:
بله
از تکه کد شما ممنونم!
ولی دقت داشته باشید که ماژول بالا برای مدیریت حافظه موقت کاربرد داره

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">