Vaciar Portapapeles

Respuesta de
jgirj
a
Usuario
Hola; Gracias de antemano por leerme. No logro encontrar -ni con la grabadora- una macro que se ejecute en excel y que vacíe totalmente el portapapeles del office XP de forma automática cuando llegue la ejecución de esa instrucción.
¿Alguien me puede ayudar? ¿Cómo se hace? ¿Cuál es la instrucción -en VBA- que debo colocar en la macro para que se vacíe el portapapeles?
Gracias de nuevo
Usuario
No logro que me funcione. Uso el Office XP 2002. ¿Qué estoy haciendo mal?
Experto
Te Explico

Si lo que encesitas es borrar del portapapeles algo que ha sido puesto desde la misma instancia de excel basta con que uses Application.CutCopyMode = False
pero si lo que quieres es borrar algo que viene de otra aplicación debes usar apis, te mustro como:

En un modulo agregar lo siguiente:

Public Declare Function EmptyClipboard Lib "user32" () As Long
Public Declare Function CloseClipboard Lib "user32" () As Long
Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long

Public Sub Vaciar_Portapapeles()
OpenClipboard 0
EmptyClipboard
CloseClipboard
End Sub

Recuerda tiene que ser en un modulo!

Ahora basta que desde donde quieras hagas la llamada de la rutina Vaciar_Portapapeles
ejemplo:

Private Sub CommandButton1_Click()
Vaciar_Portapapeles
End Sub

Saludos
Experto
Esto Puede Ayudarte

Sub Limpiar_PortaPapeles

Application.CutCopyMode = False

End Sub

Saludos

jgirj
Usuario
Muchas gracias