Código VBA para controlar la configuración de Zoom de Excel

Excel tiene configuraciones de zoom para hojas de trabajo, formularios de usuario y configuraciones de impresión. Cada uno de estos tiene diferentes propósitos y se usa en diferentes puntos, pero todos pueden ser controlados por VBA.
Configuración de zoom de la hoja de trabajo
La configuración de zoom de la hoja de cálculo en Excel siempre será un número entero. Si el valor establecido por VBA contiene decimales, se redondeará hacia abajo al número entero más cercano.
'Cambiar la configuración de zoom de la hoja de cálculo para la ventana activa ActiveWindow.Zoom = 56
'Cambiar la configuración de zoom de la hoja de cálculo para cualquier ventana abierta
Windows("Book1.xlsx").Zoom = 56
Las configuraciones de zoom mínimas y máximas permitidas son 10% y 400%.
Zoom a la selección
Excel contiene una configuración llamada Zoom a la selección, que se encuentra en la cinta Ver.

Al hacer clic en este botón, se ampliará automáticamente la hoja de trabajo activa para que se ajuste a las celdas seleccionadas. Esta opción también está disponible dentro de la ventana Zoom.

La función Zoom a selección/Ajustar a selección se puede controlar con VBA, sin embargo, requiere seleccionar un rango. El siguiente código selecciona las celdas A1: J15 y amplía la ventana al tamaño de esas celdas.
'Acercar al rango de selección
Range("A1:J15").Select
ActiveWindow.Zoom = True
Transferir la configuración de zoom actual a una variable
La configuración de zoom se puede asignar a una variable para usarla más adelante en el código.
'Configuración de la variable para la configuración de zoom de la ventana activa Dim zoomSetting As Integer zoomSetting = ActiveWindow.Zoom
'Configuración de variable para la configuración de zoom de cualquier ventana con nombre
Dim zoomSetting As Integer
zoomSetting = Windows("Book1.xlsx").Zoom
Cambiar las funciones de zoom de la rueda de desplazamiento del mouse
Prácticamente todos los mouse tienen una rueda de desplazamiento o una función de desplazamiento similar. De forma predeterminada, la rueda se desplazará hacia arriba y hacia abajo en la página, pero con Ctrl + desplazamiento del mouse se acercará a una hoja de cálculo de Excel. Con VBA es posible revertir esta configuración cuando se usa en Excel.
'Zoom con desplazamiento del mouse, desplazamiento con Ctrl + desplazamiento del mouse Application.RollZoom = True
'Zoom con Ctrl + desplazamiento del mouse, desplazamiento con desplazamiento del mouse (configuración predeterminada) Application.RollZoom = False
El cuadro de diálogo Zoom
VBA puede activar la visualización de la ventana Zoom.
El valor después de .Show es el tamaño predeterminado seleccionado en la ventana. Si ese valor también es un tamaño estándar, como 200%, 100%, 75%, etc., esa opción se resaltará automáticamente en la ventana de Zoom.
'Mostrar ventana de Zoom incluye 150% como selección predeterminada Application.Dialogs(xlDialogZoom).Show (150)
No creo que sea posible capturar el valor solicitado desde la ventana de Zoom sin cambiar la configuración del zoom. Por lo tanto, como solución alternativa, es necesario asignar el valor original a una variable, cambiar la configuración del zoom, registrar el nuevo valor y luego volver al original.
'Capturar configuración de zoom desde el cuadro de diálogo 'Crear variable para mantener la configuración de zoom Dim zoomSetting As Integer zoomSetting = ActiveWindow.Zoom 'Abrir el cuadro de diálogo de zoom para cambiar la configuración Application.Dialogs(xlDialogZoom).Show (zoomSetting) 'Imprimir configuración de zoom en la ventana inmediata Debug.Print ActiveWindow.Zoom 'Devuelve la configuración de zoom al estado original ActiveWindow.Zoom = zoomSetting
Imprimir zoom
Al imprimir un documento, hay diferentes configuraciones de zoom disponibles, que solo se aplican a documentos impresos.

Esta configuración está controlada por los siguientes ejemplos de VBA. Cada ejemplo se aplica a una hoja de trabajo llamada ZoomSettings, pero también se podría aplicar a ActiveSheet.
'Establece el nivel de zoom
Worksheets("ZoomSettings").PageSetup.Zoom = 150
'Desactiva el nivel de zoom y ajusta a las páginas
Worksheets("ZoomSettings").PageSetup.Zoom = False
'Acercar a un número específico de páginas
Worksheets("ZoomSettings").PageSetup.FitToPagesWide = 5
Worksheets("ZoomSettings").PageSetup.FitToPagesTall = 1
Zoom de formulario de usuario
El formulario de usuario de VBA también incluye su propia configuración de zoom. Sin embargo, no es tan útil como podría pensar, ya que cambia el tamaño del formulario, solo los elementos del formulario. Para mantener las cosas en proporción, es necesario cambiar el tamaño del formulario usando las propiedades Alto y Ancho.
'Las configuraciones por debajo de este tamaño cambiarán las proporciones del UserForm a 300% Dim zoomSetting As Double ZoomSetting = 300 'Mostrar UserForm UserForm1.Show 'Cambiar la configuración de zoom de UserForm UserForm1.Zoom = ZoomSetting 'Cambiar Ancho Alto en la misma proporción que la configuración de Zoom UserForm1.Width = UserForm1.Width * ZoomSetting / 100 UserForm1.Height = UserForm1.Height * ZoomSetting / 100
Los anchos mínimo y máximo permitidos son 99 y 12287,5.
Las alturas mínima y máxima permitidas son 28,5 y 12287,5.
Si se le proporciona un valor fuera del rango permitido, VBA ajustará automáticamente la altura y el ancho UserFrom para que sean mínimo o máximo. Esto puede dar lugar a formularios de usuario que no tengan las mismas proporciones.
Te puede interesar
