Se puede crear una función específica de Excel mediante VBA para evaluar el estado de protección/desprotección de una hoja de cálculo en un libro de Excel y realizar acciones en consecuencia. Desde el libro en cuestión, la combinación de teclas Alt+F11 abre la ventana del editor de Visual Basic. Desde éste, la secuencia de opciones Insertar | Módulo crea un nuevo módulo de código en blanco. Si, por ejemplo, nuestra nueva función personalizada se quiere denominar HJAPRT(), se puede copiar y pegar en el módulo este bloque de código:
Function HJAPRT(Optional Celda As Range) As Boolean
Application.Volatile
If Celda Is Nothing Then
HJAPRT = Application.Caller.Worksheet.ProtectContents
Else
HJAPRT = Celda.Worksheet.ProtectContents
End If
End Function
Cerrando sucesivamente las dos ventanas abiertas se cierra el editor y se vuelve al libro con la nueva función añadida al repertorio estándar. La expresión que puede introducirse ahora en cualquier celda de una hoja para evaluar el estado de protección/desprotección de la hoja sería del tipo:
=SI(HJAPRT();"PROTEGIDA";"DESPROTEGIDA")
En este ejemplo se mostrará en la celda el literal "PROTEGIDA" o "DESPROTEGIDA", según corresponda, aunque podría realizarse cualquier otra acción como consecuencia del resultado de la evaluación de la función estándar SI().
Function HJAPRT(Optional Celda As Range) As Boolean
Application.Volatile
If Celda Is Nothing Then
HJAPRT = Application.Caller.Worksheet.ProtectContents
Else
HJAPRT = Celda.Worksheet.ProtectContents
End If
End Function
Cerrando sucesivamente las dos ventanas abiertas se cierra el editor y se vuelve al libro con la nueva función añadida al repertorio estándar. La expresión que puede introducirse ahora en cualquier celda de una hoja para evaluar el estado de protección/desprotección de la hoja sería del tipo:
=SI(HJAPRT();"PROTEGIDA";"DESPROTEGIDA")
En este ejemplo se mostrará en la celda el literal "PROTEGIDA" o "DESPROTEGIDA", según corresponda, aunque podría realizarse cualquier otra acción como consecuencia del resultado de la evaluación de la función estándar SI().