Christopher necesita, dentro de una macro, establecer el tamaño de la ventana del programa Excel. Sabe cómo establecer el tamaño de una hoja de trabajo dentro de la ventana del programa, pero eso no es lo que necesita. Se pregunta cómo puede establecer el tamaño general de la ventana del programa, además de asegurarse de no configurarlo más grande que el tamaño de pantalla real del usuario.

Esto se puede hacer con bastante facilidad si uno sabe qué objetos y propiedades usar en su macro. El objeto que desea utilizar es el objeto Aplicación, que se refiere a la aplicación Excel. Aquí están las propiedades pertinentes:

Top. * El píxel de la pantalla en el que se debe colocar el borde superior de la ventana de la aplicación.

Izquierda. * El píxel de la pantalla en el que se debe colocar el borde izquierdo de la ventana de la aplicación.

Ancho. * El ancho de la ventana de la aplicación, en píxeles.

Alto. * El alto de la ventana de la aplicación, en píxeles.

Teniendo esto en cuenta, puede establecer la posición y el tamaño de la ventana del programa de esta manera:

Sub SetWindowSize1()

Application.WindowState = xlNormal     Application.Top = 25     Application.Left = 25     Application.Width = 300     Application.Height = 200 End Sub

Esta macro especifica la esquina superior izquierda de la ventana del programa a 25 píxeles de la parte superior de la pantalla y 25 píxeles de la izquierda de la pantalla. Luego, la ventana del programa se establece en 300 píxeles de ancho y 200 píxeles de alto. Tenga en cuenta también la configuración de la propiedad WindowState en la primera de la macro. Esto establece que la ventana esté en un estado «normal», lo que significa que se puede cambiar el tamaño a algo más grande que minimizado y más pequeño que maximizado. (Si desea que la ventana del programa Excel ocupe toda la pantalla, simplemente establezca la propiedad WindowState en xlMaximized y olvide el resto de las configuraciones en la macro).

Por supuesto, esta macro configura la ventana del programa Excel para que sea bastante pequeña.

Con toda probabilidad querrás que sea más grande, pero no querrás que sea más grande que el tamaño de la pantalla del usuario. La forma más fácil de averiguar el tamaño de la pantalla del usuario es simplemente maximizar la ventana de la aplicación Excel y luego mirar las propiedades Ancho y Alto. Luego, puede ajustar esas cifras en función de dónde desea que esté la esquina superior izquierda de la pantalla y luego ajustar en consecuencia.

Como ejemplo, digamos que quiere que la ventana del programa comience en 25, 50 y quiere que sea 1000 x 500. Puede usar un código similar al siguiente:

Sub SetWindowSize2()

Dim iMaxWidth As Integer     Dim iMaxHeight As Integer     Dim iStartX As Integer     Dim iStartY As Integer     Dim iDesiredWidth As Integer     Dim iDesiredHeight As Integer

iStartX = 50      ' Distance from left     iStartY = 25      ' Distance from top     iDesiredWidth = 1000     iDesiredHeight = 500

With Application         .WindowState = xlMaximized         iMaxWidth = Application.Width         iMaxHeight = Application.Height

' Adjust for starting point         iMaxWidth = iMaxWidth - iStartX         iMaxHeight = iMaxHeight - iStartY         If iDesiredWidth > iMaxWidth Then             iDesiredWidth = iMaxWidth         End If         If iDesiredHeight > iMaxHeight Then             iDesiredHeight = iMaxHeight         End If

.WindowState = xlNormal         .Top = iStartY         .Left = iStartX         .Width = iDesiredWidth         .Height = iDesiredHeight     End With End Sub

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

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

Este consejo (10938) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.

Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Setting_Program_Window_Size_in_a_Macro [Configuración del tamaño de la ventana del programa en una macro].