Исходя из Excel 2003 Я должен сказать, что можно изучить содержимое буфера обмена, используя MSForms.DataObject
.Сначала вы должны создать ссылку (окно инструментов VBA / ссылку) на библиотеку объектов Microsoft Forms 2.0 (обычно находится в ... \ system32 \ FM20.DLL).
Затем вы можете прочитать буфер обмена втекстовая переменная:
Dim BufObj As MSForms.DataObject, BufTxt as String
Set BufObj = New MSForms.DataObject
BufObj.GetFromClipboard
BufTxt = Buf.GetText
Текст буфера останется нетронутым (по крайней мере, в Win XP / SP3, MS Office 2003 SP 3) и доступен для дальнейшего использования, то есть GetFromClipboard
не разрушит буфер обменабуфер.Здесь необходимо учитывать, что содержимое буфера обмена доступно «в виде текста», поэтому любая графика будет храниться в режиме необработанного текста.Также необходимо учитывать размер буфера, поскольку строка переменной длины в Excel может содержать не более ca.2 ^ 31 символов (но ИМХО этого должно хватить для 90% всех потребностей).