Si Steven tiene un libro de trabajo abierto y maximizado, y luego abre uno o más libros de trabajo adicionales, los libros de trabajo adicionales parecen maximizados, pero en realidad no lo son. Los lados izquierdo, inferior y derecho de estos libros de trabajo adicionales están en los bordes de la pantalla, pero las partes superiores caen en cascada hacia abajo, como tarjetas de índice desplazadas entre sí. Para Steve, sería mucho mejor si los libros de trabajo adicionales se abrieran como una porción más pequeña de la ventana o completamente maximizados para que luego pudiera «restaurar» las ventanas a un tamaño más pequeño. Se pregunta si hay alguna configuración que controle el tamaño de la ventana de estos libros de trabajo adicionales cuando se abren.

Puede afectar con bastante facilidad lo que sucede con una ventana de libro de trabajo mediante el uso de macros. El lugar normal para hacer esto sería en la macro Workbook_Open, que es un controlador de eventos en el objeto ThisWorkbook. Aquí hay una versión muy simple que simplemente aseguraría que la ventana esté maximizada:

Public Sub WorkBook_Open()

Application.WindowState = xlMaximized End Sub

Luego, si lo desea, puede ajustar manualmente el tamaño de la ventana maximizada.

Por supuesto, también puede «construir» la macro para que manipule la ventana de otras formas. Por ejemplo, la siguiente es una macro que determinará el tamaño máximo de pantalla del monitor en el que se abre el libro de trabajo, y luego ajusta el tamaño de la ventana para ocupar el 72% del ancho de la pantalla y el 96% de la altura de la pantalla.

Public Sub WorkBook_Open()

Dim iMaxWidth As Integer    'Screen width (pixels)

Dim iMaxHeight As Integer   'Screen height (pixels)

Dim sngStartX As Single     'Upper-left corner of desired window     Dim sngStartY As Single     'Upper-left corner of desired window     Dim sngWidth As Single      'Width of desired window     Dim sngHeight As Single     'Height of desired window

'Specifications for final window size     sngStartX = 0.14   'Fraction of screen width from left edge     sngStartY = 0.02   'Fraction of screen height from top     sngWidth = 0.72    'Fraction of screen width desired     sngHeight = 0.96   'Fraction of screen height desired

With Application         'Maximize screen in order to grab maximum width and height         .WindowState = xlMaximized         iMaxWidth = .Width         iMaxHeight = .Height         .WindowState = xlNormal

'Set final window position and size         .Top = iMaxHeight  sngStartY         .Left = iMaxWidth  sngStartX         .Width = sngWidth  iMaxWidth         .Height = sngHeight  iMaxHeight     End With End Sub

Por supuesto, puede ajustar la configuración en las dos variables (sngWidth y sngHeight) para elegir un tamaño de pantalla final diferente. También puede ajustar la configuración en las variables sngStartX y sngStartY para especificar la posición de la esquina superior izquierda de la ventana final.

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (4975) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.