VBA: Вставка данных из буфера обмена в переменную

Автор Rengame113, 21 июня 2018, 16:17

Rengame113

Как вставить данные из буфера обмена в переменную?

Администратор

Нужно понимать, что при использовании объекта "DataObject" в переменную вставляются не просто данные, а текст. Например, если в буфере обмена Windows находится рисунок, то он не будет помещён в объект "DataObject". Объект "DataObject" работает только с текстом.

Макрос
Sub Макрос()

    Dim DataObject As Object, var
   
   
    '1. Создание объекта "DataObject".
    Set DataObject = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
   
    '2. Копирование текста из буфера обмена Windows в объект "DataObject".
    DataObject.GetFromClipboard
   
    '3. Если буфер обмена Windows пустой или если в нём не текст, а что-то другое, например, рисунок.
        ' В скобках нужно указывать всегда число 1. Другие числа, как я понимаю, не используются.
        ' В справке ещё упоминаются "пользовательские форматы", но что это такое, я пока не знаю.
    If DataObject.GetFormat(Format:=1) = False Then
        Exit Sub
    End If
   
    '4. Копирование текста из "DataObject" в переменную.
    var = DataObject.GetText(Format:=1)
   
End Sub
[свернуть]