microsoft word中有一个函数(宏)可以自动跳过剪贴板中的任何内容吗



microsoftword中是否有一个函数(宏(可以自动跳过剪贴板中的任何内容?我正在处理宏,以检查剪贴板中是否有新内容,并在没有我参与过程的情况下在单词中通过它

请尝试这种方法:

  1. 在文档项目或Normal.dot中插入表单。只有在收到引用("Microsoft Forms 2.0对象库"(时才能执行此操作。现在您可以删除它。引用将保留。理论上,你可以直接添加引用,但有时Word不会在可能添加的引用之间显示它;

  2. 插入标准模块并粘贴下一个代码:

Sub testPutfromclipboard()
Dim clp As DataObject, nextLine As String

'nextLine = vbCrLf
Set clp = New DataObject
clp.GetFromClipboard
If clp.GetFormat(1) Then
If clp.GetText <> Empty Then
ActiveDocument.Content.InsertAfter Text:=nextLine & clp.GetText
clp.SetText Text:=Empty: clp.PutInClipboard
End If
End If
End Sub
  1. 运行它,剪贴板将粘贴在活动文档文本的末尾

如果要将其粘贴到下一行,只需取消对'nextLine = vbCrLf行的注释。。。

您可以每秒轮询一次。

Public Declare Function GetClipboardOwner Lib "user32" () As Long
Public Declare Function GetClipboardSequenceNumber Lib "user32" () As Long
RTFString = RTFString & "b1 Clipboard Sequence Number: b0 " & CStr(GetClipboardSequenceNumber()) & "par" & vbCr
RTFString = RTFString & "b1 Clipboard Owner Window Handle: b0 " & CStr(GetClipboardOwner()) & "par" & vbCr
Msgbox RTFString

还有一种更好的方法,但它需要对表单进行子类。请参阅https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-addclipboardformatlistener

你不需要对窗体进行子类,你可以对Excel的主窗口进行子类。

相关内容

最新更新