Ваш GetText()
не выполняется, поскольку макросы не выполняются в потоке STA.
Это звучит странно, но это так.
Поэтому вы должны обернуть GetText()
так, чтобы он вызывался внутри потока STA.
Вот код, который я использую в настоящее время:
Private clipString As String = String.Empty
Function GetClipboardText() As String
clipString = ""
Dim data = Clipboard.GetDataObject()
If Not data Is Nothing Then
clipString = data.GetData(System.Windows.Forms.DataFormats.StringFormat)
End If
' myString = DataObj.GetText(1)
' MsgBox(myString)
' clipString = _
' Clipboard.GetDataObject() _
' .GetData(System.Windows.Forms.DataFormats.StringFormat)
End Function
Private Sub StoreClipBoardText(ByVal s As String)
clipString = Clipboard.GetDataObject().GetData(System.Windows.Forms.DataFormats.StringFormat)
End Sub
Я думаю, вы должны сделать то же самое, если хотите поместить что-то в буфер обмена.