Configuración del tamaño de la ventana del programa en una macro (Microsoft Excel)
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]
.