Deshabilitar Ctrl + V. Objeto Application – Método OnKey

Vamos cada vez entiendo un poco más el potencial del Método OnKey del Objeto Application, más aún cuando en la entrega pasada aprendimos a deshabilitar la combinación de teclas Ctrl + C que se utilizan mucho para el copiado de información de la celda activa al Portapapeles. Vamos a ver a continuación como deshabilitar la combinación de teclas Ctrol + V que sirve para pegar la información que tenemos en el Portapapeles.

Método OnKey: Permite manipular el teclado de nuestro computador desde el editor de VBA.

Desde Excel abrimos el Editor VBA (Alt + F11), insertamos un Módulo (Clic derecho sobre el proyecto Excel, Insertar, Módulo:

Ingresamos el siguiente código:

Sub DesactivarCtrolV()

Application.OnKey "^{v}", ""

End Sub

Queda de la siguiente manera en el Módulo:

  1. La primera línea Sub DesactivarCtrolV(), indica el inicio de la macro.
  2. En la segunda línea estamos utilizando del Objeto Application el método OnKey el cual se utiliza para activar y modificar cualquier tecla; en este caso estamos modificando la combinación de teclas Ctrl+V , específicamente para que no puedan ser utilizadas; para lograrlo indicamos entre comillas la letra V anteponiendo el signo de Potencia (^); este signo Potencia (^) es la representación en código VBA de la tecla Ctrl. Finalmente se establece como parámetro de acción a esta combinación de teclas un espacio en blanco entre dos comillas dobles tal y como aparece al final de esta segunda línea.
  3. La última línea marca el fin (End) de la Macro o Subrutina (Sub)

Ahora ejecutamos la macro y volvemos a la hoja Excel para probar el resultado al presionar las teclas Ctrl + V donde efectivamente al presionarlas no sucede nada.

Para activarla debemos insertar el siguiente código en el módulo:

Sub ReactivarCtrlV()

Application.OnKey "^ {v}"

End Sub

Ejecutamos y eso es todo.

Descargar archivo de trabajo.

Contenido relacionado:
Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.

Siéntase libre de opinar

Una opinión
  1. Jonas dice:

    Muy buen post. Te hago una consulta al respecto.
    Quiero que en una hoja en particular (Hoja1) de un excel el Cntrl+v ejecute una macro ( Macro1), pero en el resto de hojas, workbooks y aplicaciones cumpla su funcion de pegar.

    Para hacer esto, al inicio de la Macro1 pregunto si la Hoja activa es la Hoja1, y, si no lo es, pongo:

    Sub Macro1 ()
    If activeworkbook.name thisworkbook.name Or Activesheet.name “Hoja1” then
    activesheet.paste
    exit sub
    end if
    ‘resto de la macro…
    End Sub

    En las opciones de la macro pongo que trabaje con Cntrl + v.

    esto me funciona mas o menos bien, ya que el activesheet.paste no es enteramente igual al Cntrl+v.

    Tenes idea como puedo mejorarlo para que funcione bien??
    muchas gracias.

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc., pero debe hacerlo sin insultar y sin ofender a otros.

Información legal aplicable para Colombia.