• Thứ Tư, 18/10/2006 10:08 (GMT+7)

    Gán chuỗi từ Clipboard vào biến và ngược lại trong VBA

    Câu hỏi :
    Xin chỉ cách gán một chuỗi từ Clipboard vào một biến và ngược lại, sử dụng VB trong Excel.


    Trả lời :

    Nếu đang lập trình ứng dụng bằng ngôn ngữ VB, bạn có thể dùng trực tiếp đối tượng Clipboard để thực hiện việc set/get dữ liệu trực tiếp vào Clipboard. Tuy nhiên nếu lập trình bằng ngôn ngữ VBA (để viết các module phần mềm trong các ứng dụng Office), bạn không thể truy xuất trực tiếp đối tượng Clipboard được, bạn chỉ có thể sử dụng Clipboard gián tiếp thông qua đối tượng DataObject, mà ngay cả đối tượng DataObject cũng không có sẵn trong Project VBA của bạn, do đó qui trình sử dụng Clipboard trong module VBA Excel như sau:

     - Chạy Excel, mở file Excel cần làm việc, chọn menu Tools.Macro.Macros để tạo 1 macro mới với tên là SetGetClipboard (hay Tools.Macro.Visual Basic Editor để vào thẳng cửa sổ soạn code VBA).
     - Khi cửa sổ soạn code VBA hiển thị, bạn chọn Tools.References để hiển thị cửa sổ References, duyệt tìm và chọn mục "Microsoft Forms 2.0 Object Library" (chứa đối tượng DataObject cần dùng để truy xuất Clipboard). Trong trường hợp mục này không có trong danh sách, bạn chọn button Browse rồi duyệt tìm và chọn file fm20.dll trong thư mục "c:\Windows\system32".
     - Viết code cho macro hay thủ tục cần dùng Clipboard, thí dụ đoạn code cho macro SetGetClipboard dưới đây demo việc chứa chuỗi vào Clipboard rồi lấy ra và hiển thị lên màn hình:
     Sub SetGetClipboard()
     Dim MyDataObj As New DataObject
     'chứa chuỗi vào đối tượng DataObject
     MyDataObj.SetText "Nguyen Van Hiep"
     'rồi chứa chuỗi vào Clipboard
     MyDataObj.PutInClipboard
     'lấy chuỗi từ Clipboard ra đối tượng DataObject
     MyDataObj.GetFromClipboard
     'lấy chuỗi từ đối tượng DataObject ra và hiển thị
     MsgBox MyDataObj.GetText
     End Sub
     

    Chuyên mục: Mạng - truyền thông