Hace un tiempo un amigo me preguntó si existía alguna manera para poder devolver al estado inicial de zoom las hojas de un libro de Excel. El caso es que mi amigo ve mal y necesita ampliar las hojas siempre y su jefe era un maniático y le gustaba tenerlas siempre con zoom al 100%, no más y no menos. Vamos, juntos, estos dos, formaban un cocktail explosivo en cuanto a zoom se refiere. El caso es que para eso entra VBA y los eventos, para evitarnos discusiones absurdas.
Teoría sobre cambiar zoom con VBA
El zoom es una propiedad de la hoja activa. Esto significa que no es una propiedad en si misma de una hoja de Excel, no es como cambiarle el color sino que es una opción de visualización.
Esto hace que no exista como tal esta opción dentro de sheets sino que tengamos que utilizar el método zoom dentro del elemento ActiveWindow
El código de esto sería:
ActiveWindow.Zoom = 100
Ejemplo
No es que sea la aplicación del milenio por la que nos vayan a dar el novel de la ciencia pero al menos conseguiremos evitar cabreos de nuestros jefes y conseguiremos que nuestros documentos siempre sean uniformes. En este caso hemos preparado un evento de VBA que nos permite al salir del libro (siempre que sea guardando previamente) colocar todas las hojas del libro con el Zoom al 100%.
El código que necesitas es este:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Sht As Worksheet
For Each Sht In Worksheets
ActiveWindow.Zoom = 100
Next
End Sub
Esto código ha de colocarse en la hoja “ThisWorkbook” en la parte general. Para saber más sobre eventos en VBA puede visitar el siguiente link: eventos en vba donde explicamos con mayor detalle cómo crear un evento en VBA.