Ну, это заняло некоторое время, но вот как это сделать.
Просто для повторного решения проблемы я хочу извлечь текст из буфера обмена с помощью DataObject.GetFromClipboard с перехватом ошибок, установленным на Разрыв всех ошибок, и без выдачи ошибки, когда в буфере обмена нет текста.
Sub TEST_getClipText()
Debug.Print getClipText
End Sub
Function getClipText() As String
Dim DataObj As MsForms.DataObject
Set DataObj = New MsForms.DataObject 'tnx jp
Dim V As Variant
For Each V In Application.ClipboardFormats
If V = xlClipboardFormatText Then
DataObj.GetFromClipboard
getClipText = DataObj.getText(1)
Exit Function
End If
Next V
MsgBox "No text on clipboard"
End Function