Я использую код для вставки в электронную почту последнего экрана печати буфера обмена, но есть ли способ выбрать последние 3 экрана для печати? Или выбрать несколько экранов печати для вставки в электронную почту? Спасибо.Вставка буфера обмена по электронной почте
Sub clipboardcopy()
Dim OutApp As Object
Dim OutMail As Object
Dim olInsp As Object
Dim oRng As Object
On Error Resume Next
Set OutApp = GetObject(, "Outlook.Application")
If Err <> 0 Then Set OutApp = CreateObject("Outlook.Application")
On Error GoTo 0
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "PRINT SCREEN"
Set olInsp = .GetInspector
Set wdDoc = olInsp.WordEditor
Set oRng = wdDoc.Range
oRng.collapse 1
oRng.Paste
.Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
Set olInsp = Nothing
Set wdDoc = Nothing
Set oRng = Nothing
End Sub
Тогда есть ли способ вставить, когда я нажимаю экран печати? – wittman
VBA не может слушать буфер обмена для событий. Это ограничивает ваши варианты. Вы можете написать код, который периодически проверяет буфер обмена на изменения. Но поскольку VBA работает на одном потоке, вы можете обнаружить, что это замедляет все остальное. Также было бы трудно избежать блокировки любого другого кода, который вы хотите запустить. –