Страница 1 из 1

Вставка текста в текстбокс из буфера - альтернатива Shift-Insert

Добавлено: 07 май 2009, 13:29
AlexZZZ
Здравствуйте, уважаемые коллеги!

Проконсультируйте, пожалуйста вот по какой теме. Есть стороннее приложение (не из пакета MS Office) , запущенное одновременно с Excel. Из этого приложения копируется текстовая строка. Чтобы теперь вставить её в текстбокс на форме Excel, достаточно нажать Shift-Insert. А есть ли какая-то альтернатива? Например, сделать на форме кнопку "Вставить" с макросом.
На форуме нашёл только про DataObject, но в этом случае, насколько я понимаю, он не поможет.

Re: Вставка текста в текстбокс из буфера - альтернатива Shift-Insert

Добавлено: 07 май 2009, 15:25
EducatedFool
На форуме нашёл только про DataObject, но в этом случае, насколько я понимаю, он не поможет.
Ну почему же... ещё как поможет.

Вот примерный код для работы с буфером обмена:

Код: Выделить всё

' ============= работа с буфером обмена
Public Sub [B]SetClipboard[/B](Obj As Variant)
    Dim MyDataObj As New DataObject
    MyDataObj.SetText Format(Obj)
    MyDataObj.PutInClipboard
End Sub
Public Sub [B]SetTextIntoClipboard[/B](ByVal txt As String)
    Dim MyDataObj As New DataObject
    MyDataObj.SetText txt
    MyDataObj.PutInClipboard
End Sub
Public Function [B]GetClipboard[/B]() As Variant
    GetClipboard = "": On Error Resume Next
    Dim MyDataObj As New DataObject
    MyDataObj.GetFromClipboard: GetClipboard = MyDataObj.GetText()
End Function

Public Sub [B]ClearClipboard[/B]()
    Dim MyDataObj As New DataObject
    MyDataObj.SetText "": MyDataObj.PutInClipboard
End Sub
Ну а использовать это можно как-то так:

Код: Выделить всё

Private Sub CommandButton2_Click() ' кнопка "ВСТАВИТЬ ИЗ БУФЕРА ОБМЕНА"
    Me.TextBox1.Text = [B]GetClipboard[/B]
End Sub

Re: Вставка текста в текстбокс из буфера - альтернатива Shift-Insert

Добавлено: 07 май 2009, 17:22
AlexZZZ
Спасибо! Всё замечательно работает!