Форум по VBA, Excel и Word

Word => Макросы в Word => Тема начата: Rengame113 от 21 июня 2018, 16:17

Название: VBA: Вставка данных из буфера обмена в переменную
Отправлено: Rengame113 от 21 июня 2018, 16:17
Как вставить данные из буфера обмена в переменную?
Название: Re: VBA: Вставка данных из буфера обмена в переменную
Отправлено: Администратор от 21 июня 2018, 17:23
Нужно понимать, что при использовании объекта "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
[свернуть]
Название: Re: VBA: Вставка данных из буфера обмена в переменную
Отправлено: Rengame113 от 21 июня 2018, 22:14
спасибо