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.

Índice
  1. Configuración de zoom de la hoja de trabajo
    1. Zoom a la selección
    2. Transferir la configuración de zoom actual a una variable
    3. Cambiar las funciones de zoom de la rueda de desplazamiento del mouse
    4. El cuadro de diálogo Zoom
  2. Imprimir zoom
  3. Zoom de formulario de usuario

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 activaActiveWindow.Zoom = 56
'Cambiar la configuración de zoom de la hoja de cálculo para cualquier ventana abiertaWindows("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.

Ver zoom a la selección

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.

Configuración de zoom Ajustar a la selección

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("A1:J15").SelectActiveWindow.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 activaDim zoomSetting As IntegerzoomSetting = 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 souse, desplazamiento con Ctrl + desplazamiento del mouseApplication.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 predeterminadaApplication.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 zoomDim zoomSetting As IntegerzoomSetting = ActiveWindow.Zoom'Abrir el cuadro de diálogo de zoom para cambiar la configuraciónApplication.Dialogs(xlDialogZoom).Show (zoomSetting)'Imprimir configuración de zoom en la ventana inmediataDebug.Print ActiveWindow.Zoom'Devuelve la configuración de zoom al estado originalActiveWindow.Zoom = zoomSetting

Imprimir zoom

Al imprimir un documento, hay diferentes configuraciones de zoom disponibles, que solo se aplican a documentos impresos.

Configuración de zoom: configuración de página

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 zoomWorksheets("ZoomSettings").PageSetup.Zoom = 150
'Desactiva el nivel de zoom y ajusta a las páginasWorksheets("ZoomSettings").PageSetup.Zoom = False
'Acercar a un número específico de páginasWorksheets("ZoomSettings").PageSetup.FitToPagesWide = 5Worksheets("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 DoubleZoomSetting = 300'Mostrar UserFormUserForm1.Show'Cambiar la configuración de zoom de UserFormUserForm1.Zoom = ZoomSetting'Cambiar Ancho Alto en la misma proporción que la configuración de ZoomUserForm1.Width = UserForm1.Width * ZoomSetting / 100UserForm1.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.