Está en la página 1de 7

Deshabilitar Teclas

de Funcin
con
cdigo VBA

Algunas veces necesitamos bloquear ciertas


teclas de funcin, para evitar que los usuarios
ingresen a determinadas caractersticas de
nuestro libro de trabajo; como puede ser el caso
de la combinacin de teclas ALT+F11, la cual
nos permite acceder de una forma prctica y
sencilla
hacia
el
entorno
VBA.
Tambin
podramos
deshabilitar
la
tecla ALT+F8, con la cual accedemos al listado
de macros creadas.

Pues, en este artculo aprenders cmo


deshabilitar algunas teclas de funciones,
brindando cierta seguridad a tus libros de
trabajo.
Ok, comencemos!

Lo que vamos a hacer, es deshabilitar las


siguientes
combinaciones
de
teclas:
ALT+F8, la cual nos permite ver el listado de las
macros
creadas,
ALT+F11, nos permite dirigirnos al Editor de
Visual
Basic,
y
F12, nos permite la opcin "Guardar como..."
Pues, vamos a bloquear estas caractersticas en
nuestro
libro
de
trabajo.
Dirgete al entorno VBA e inserta un nuevo
mdulo, en donde pegars el siguiente cdigo
de programacin:

1
2
3
4
5
6
7
8
9
10
11
12

Dim Cancel As Boolean


Sub DeshabilitarTecla()
Cancel = True
MsgBox "Tecla deshabilitada!",
vbInformation
End Sub
Sub HabilitarTeclas()
Application.OnKey "%{F8}"
Application.OnKey "%{F11}"
Application.OnKey "{F12}"
End Sub

Como puedes ver en la siguiente imagen,


siempre al inicio tengo declarado Option Explicit,
lo cual me aparece de forma predeterminada
cada vez que agrego un mdulo nuevo, porque
yo as lo tengo establecido en las opciones.
Option Explicit nos obliga a declarar todas y
cada una de las variable y de esa forma
evitamos errores en la declaracin de las
mismas.
El cdigo pegado te tiene que quedar de la
siguiente manera:

Luego
das
doble
clic
sobre
objeto ThisWorkbook,
para
insertar
siguientes lneas:
1
2
3
4
5

el
las

Private Sub Workbook_Open()


Application.OnKey "%{F8}",
"DeshabilitarTecla"
Application.OnKey "%{F11}",
"DeshabilitarTecla"
Application.OnKey "{F12}",
"DeshabilitarTecla"
End Sub

Para
que
te
ubiques
cul
es
el
objeto Thisworkbook, checa la siguiente
imagen:

Ok,

ahora

te

explico

el

cdigo

VBA.

Dentro
del
evento OPEN del
objeto ThisWorkbook, hemos insertado tres
lneas
de
cdigo,
utilizando
la
sentencia Application.OnKey con
lo
cual
hacemos referencia a la tecla que deseamos
deshabilitar. Puedes observar que tenemos el
procedimiento "DeshabilitarTecla",
el
cual
llamamos desde la misma lnea, para
deshabilitar
la
tecla
en
referencia.
Ahora
bien,
el
procedimiento "DeshabilitarTecla", es el que
pegaste en el Mdulo1, en conde estamos
manejando la variable Cancel de tipo Buleano,
para establecer que las teclas en referencia
desde el Evento OPEN, quedarn inactivas.
Cabe destacar que el evento OPEN, dispara las
lneas de cdigo insertadas, en el preciso
momento que abrimos nuestro libro de trabajo y
de esa forma las teclas mencionadas quedarn
inactivas,

Cada vez que presionemos una de las teclas


deshabilitadas, nos aparecer el siguiente
mensaje:

Si tu quieres, puedes omitir ese mensaje,


borrando
dicha
lnea
de
cdigo.
Para
finalizar,
tenemos
el
procedimiento "HabilitarTeclas", lo que nos
permitir reactivar dichas caractersticas, Este
procedimiento lo puedes asignar a algn botn,
en dado caso quieras habilitar las teclas
nuevamente.
Para este ejemplo, no olvides guardar tu libro de
trabajo como "Libro de Excel habilitado para
macros"

También podría gustarte