Vaciar Portapapeles

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?

1 respuesta

Respuesta
1
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
No logro que me funcione. Uso el Office XP 2002. ¿Qué estoy haciendo mal?
Esto Puede Ayudarte
Sub Limpiar_PortaPapeles
Application.CutCopyMode = False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas