Clase Window (Excel VBA)

La clase Window representa una ventana.

Los principales procedimientos de la clase Window son Activate y Close

Set

Para usar una variable de clase Window, primero debe ser instanciado, por ejemplo

Dim wnd as Window
Set wnd = ActiveWindow

Los siguientes procedimientos se pueden usar para establecer variables de clase Window : Application.ActiveWindow, NewWindow, Windows.Item, Workbook.NewWindow, Application.Windows, Selection y Workbook.Windows

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos Window en una colección.

Dim wnd As Window
For Each wnd In Windows
	
Next wnd

Temas

Algunos procedimientos de esta clase se han agrupado en temas y se describen en páginas temáticas separadas

Print with its procedures PrintOut y PrintPreview
Column with its procedures ScrollColumn y SplitColumn
Row with its procedures ScrollRow y SplitRow

Métodos

Los principales métodos de la clase Window son

Activate - Sitúa la ventana en el primer plano del orden z.

ActiveWindow.Activate

Close - Cierra el objeto.

Dim booClose As Boolean
booClose = ActiveWindow.Close

Otros Métodos

ActivateNext - Activa la ventana especificada y la envía hacia atrás en el orden z de la ventana.

ActivatePrevious - Activa la ventana especificada y, a continuación, la que se encuentra detrás en el orden z de la ventana.

LargeScroll - Desplaza el contenido de la ventana por páginas.

NewWindow - Crea una ventana nueva o una copia de la ventana especificada.

PointsToScreenPixelsX - Convierte una medida horizontal de puntos (coordenadas de documento) en píxeles de pantalla (coordenadas de pantalla). Devuelve la medida convertida expresada como un valor Long.

PointsToScreenPixelsY - Convierte una medida vertical de puntos (coordenadas de documento) en píxeles de pantalla (coordenadas de pantalla). Devuelve la medida convertida expresada como un valor Long.

RangeFromPoint - Devuelve el objeto Shape o Range que se encuentra en el par de coordenadas de pantalla especificado. Si no hay ninguna forma ubicada en las coordenadas especificadas, este método devuelve Nothing.

ScrollIntoView - Desplaza la ventana del documento para mostrar el contenido de un área rectangular especificada en la esquina superior izquierda o en la esquina inferior derecha de la ventana o panel de documento (según el valor del argumento Start).

ScrollWorkbookTabs - Se desplaza por las fichas del libro que están en el borde inferior de la ventana. No afecta a la hoja de cálculo activa en el libro.

SmallScroll - Desplaza el contenido de la ventana por filas o columnas.

Windows.Arrange - Organiza las ventanas en la pantalla.

Windows.BreakSideBySide - Finaliza el modo paralelo si dos ventanas están en dicho modo. Devuelve un valor Boolean que representa si el método era correcto.

Windows.CompareSideBySideWith - Abre dos ventanas en paralelo. Devuelve un valor Boolean.

Windows.ResetPositionsSideBySide - Restablece la posición de las ventanas de dos hojas que se están comparando una al lado de la otra.

Propiedades

ActiveCell Devuelve un objeto Range que representa la celda activa de la ventana activa (la ventana en la parte superior) o de la ventana especificada. Si la ventana no contiene una hoja de cálculo, esta propiedad produce un error. Solo lectura.

Dim rngActiveCell As Range
Set rngActiveCell = ActiveWindow.ActiveCell

ActiveChart Devuelve un objeto Chart que representa el gráfico activo (ya sea un gráfico incrustado o una hoja de gráficos). Un gráfico incrustado se considera activo cuando está seleccionado o activado. Si no hay ningún gráfico activo, esta propiedad devuelve Nothing.

Dim chrActiveChart As Chart
Set chrActiveChart = ActiveWindow.ActiveChart

ActivePane Devuelve un objeto pane que representa el panel activo de la ventana. Solo lectura.

Dim panActivePane As Pane
Set panActivePane = ActiveWindow.ActivePane

ActiveSheet Devuelve un objeto que representa la hoja activa (la hoja de la parte superior) en el libro activo o en la ventana o libro especificados. Devuelve Nothing si no hay ninguna hoja activa.

Dim wsActiveSheet As Worksheet
Set wsActiveSheet = ActiveWindow.ActiveSheet

ActiveSheetView Devuelve un objeto que representa la vista de la hoja activa en la ventana especificada. Solo lectura.

Dim wsvwActiveSheetView As WorksheetView
Set wsvwActiveSheetView = ActiveWindow.ActiveSheetView

AutoFilterDateGrouping True si el autofiltro de la agrupación de fechas se está presentando en ese momento en la ventana especificada. Boolean de lectura y escritura.

ActiveWindow.AutoFilterDateGrouping = True

Caption Devuelve o establece un valor Variant que representa el nombre que aparece en la barra de título de la ventana del documento.

ActiveWindow.Caption =  "Consolidated Balance Sheet"

DisplayFormulas True si se muestran fórmulas en la ventana, False si se muestran valores. Boolean de lectura y escritura.

ActiveWindow.DisplayFormulas = True

DisplayGridlines True si se muestran las líneas de división. Boolean de lectura y escritura.

ActiveWindow.DisplayGridlines = True

DisplayHeadings True si se muestran los encabezados de fila y de columna; False si no se muestran los títulos. Boolean de lectura y escritura.

ActiveWindow.DisplayHeadings = True

DisplayHorizontalScrollBar Es True si la barra de desplazamiento horizontal está visible. Boolean de lectura y escritura.

ActiveWindow.DisplayHorizontalScrollBar = True

DisplayOutline True si se muestran los símbolos de esquema. Boolean de lectura y escritura.

ActiveWindow.DisplayOutline = True

DisplayRightToLeft Es True si la ventana especificada se muestra de derecha a izquierda en lugar de mostrarse de izquierda a derecha. False si el objeto se muestra de izquierda a derecha. Boolean de solo lectura.

ActiveWindow.DisplayRightToLeft = True

DisplayRuler True si se muestra una regla para la ventana especificada. Boolean de lectura y escritura.

ActiveWindow.DisplayRuler = True

DisplayVerticalScrollBar Es True si la barra de desplazamiento vertical está visible. Boolean de lectura y escritura.

ActiveWindow.DisplayVerticalScrollBar = True

DisplayWhitespace True si se muestran los espacios en blanco. Boolean de lectura y escritura.

ActiveWindow.DisplayWhitespace = True

DisplayWorkbookTabs Es True si se muestran las fichas del libro. Boolean de lectura y escritura.

ActiveWindow.DisplayWorkbookTabs = True

DisplayZeros True si se muestran los ceros. Boolean de lectura y escritura.

ActiveWindow.DisplayZeros = True

EnableResize Es True si es posible cambiar el tamaño de la ventana. Boolean de lectura y escritura.

ActiveWindow.EnableResize = True

FreezePanes True si las divisiones de secciones están inmovilizadas. Boolean de lectura y escritura.

ActiveWindow.FreezePanes = True

GridlineColor Devuelve o establece el color de las líneas de cuadrícula como un valor RGB. Long de lectura y escritura.

ActiveWindow.GridlineColor = RGB(0,0,255)'blue

GridlineColorIndex Devuelve o establece el color de las líneas de división como un índice para la paleta de colores activa o bien como una constante XlColorIndex .

ActiveWindow.GridlineColorIndex = xlColorIndexAutomatic

Height Devuelve o establece un valor de tipo Double que representa el alto, en puntos, de la ventana.

ActiveWindow.Height =

Hwnd Devuelve un Long que indica el controlador de la ventana de la ventana especificada. Solo lectura.

Dim lngHwnd As Long
lngHwnd = ActiveWindow.Hwnd

Index Devuelve un valor de tipo Long que representa el número de índice del objeto dentro de una colección de objetos similares.

Dim lngIndex As Long
lngIndex = ActiveWindow.Index

Left Devuelve o establece un valor de tipo Double que representa la distancia, en puntos, desde el borde izquierdo del área de cliente hasta el borde izquierdo de la ventana.

ActiveWindow.Left =

OnWindow Devuelve o establece el nombre del procedimiento que se ejecutará cada vez que se active una ventana. String de lectura y escritura.

ActiveWindow.OnWindow =

Panes Devuelve una colección panes que representa todas las secciones de la ventana especificada. Solo lectura.

Dim pnsPanes As Panes
Set pnsPanes = ActiveWindow.Panes

Parent Devuelve el objeto primario del objeto especificado. Solo lectura.

Dim objParent As Object
Set objParent = ActiveWindow.Parent

RangeSelection Devuelve un objeto Range que representa las celdas seleccionadas en la hoja de cálculo de la ventana especificada aunque un objeto gráfico esté activo o seleccionado en la hoja de cálculo. Solo lectura.

Dim rngRangeSelection As Range
Set rngRangeSelection = ActiveWindow.RangeSelection

SelectedSheets Devuelve una colección Sheets que representa todas las hojas seleccionadas en la ventana especificada. Solo lectura.

Dim shtsSelectedSheets As Sheets
Set shtsSelectedSheets = ActiveWindow.SelectedSheets

Selection Devuelve la ventana especificada para un objeto de Windows .

Dim wndsSelection As Windows
Set wndsSelection = ActiveWindow.Selection

SheetViews Devuelve el objeto sheetviews ( de la ventana especificada. Solo lectura.

Dim svsSheetViews As SheetViews
Set svsSheetViews = ActiveWindow.SheetViews

Split Es True si la ventana está dividida. Boolean de lectura y escritura.

ActiveWindow.Split = True

SplitHorizontal Devuelve o establece la ubicación de la ventana horizontal dividida, en puntos. Double de lectura y escritura.

ActiveWindow.SplitHorizontal = 216

SplitVertical Devuelve o establece la ubicación de la ventana vertical dividida, en puntos. Double de lectura y escritura.

ActiveWindow.SplitVertical = 216

TabRatio Devuelve o establece la proporción del ancho del área de las fichas del libro con respecto al ancho de la barra de desplazamiento horizontal de la ventana (como un número comprendido entre 0 y 1; el valor predeterminado es 0,6). Double de lectura y escritura.

ActiveWindow.TabRatio =

Top Devuelve o establece un valor de tipo Double que representa la distancia, en puntos, desde el borde superior de la ventana hasta el borde superior del área útil situada debajo de los menús, las barras de herramientas acopladas en la parte superior y la barra de fórmulas.

ActiveWindow.Top = 100

Type Devuelve o establece un valor de XlWindowType que representa el tipo de ventana.

Dim xwtType As XlWindowType
xwtType = ActiveWindow.Type

UsableHeight Devuelve el alto máximo del espacio que puede ocupar una ventana en el área de la ventana de la aplicación, en puntos. Double de solo lectura.

Dim dblUsableHeight As Double
dblUsableHeight = ActiveWindow.UsableHeight

UsableWidth Devuelve el ancho máximo del espacio que puede ocupar una ventana en el área de la ventana de la aplicación, en puntos. Double de solo lectura.

Dim dblUsableWidth As Double
dblUsableWidth = ActiveWindow.UsableWidth

View Devuelve o establece la vista que se muestra en la ventana. XlWindowView de lectura y escritura.

ActiveWindow.View = xlNormalView

Visible Devuelve o establece un valor Boolean que determina si el objeto es visible. Lectura y escritura.

ActiveWindow.Visible = True

VisibleRange Devuelve un objeto Range que representa el rango de celdas que están visibles en la ventana o panel. Si una columna o una fila está visible parcialmente, se incluye en el rango. Solo lectura.

Dim rngVisibleRange As Range
Set rngVisibleRange = ActiveWindow.VisibleRange

Width Devuelve o establece un valor de tipo Double que representa el ancho, en puntos, de la ventana.

ActiveWindow.Width =

WindowNumber Devuelve el número de la ventana. Por ejemplo, una ventana llamada Libro1. xls: 2 tiene 2 como su número de ventana. La mayoría de las ventanas tienen el número 1. Long de sólo lectura.

Dim lngWindowNumber As Long
lngWindowNumber = ActiveWindow.WindowNumber

WindowState Devuelve o establece el estado de la ventana. XlWindowState de lectura y escritura.

ActiveWindow.WindowState = xlMaximized

Zoom Devuelve o establece un valor de tipo Variant que representa el tamaño de la ventana en la pantalla, en forma de porcentaje (100 equivale al tamaño normal, 200 equivale al doble, etc.

ActiveWindow.Zoom =

Windows.Count Devuelve un valor Long que representa el número de objetos de la colección.

Dim lngCount As Long
lngCount = ActiveWindow.Selection.Count

Windows.Item Devuelve un solo objeto de una colección.

Dim wndItem As Window
Set wndItem = ActiveWindow.Selection(Index:=1)

Windows.Parent Devuelve el objeto primario del objeto especificado. Solo lectura.

Dim objParent As Object
Set objParent = ActiveWindow.Selection.Parent

Windows.SyncScrollingSideBySide True permite desplazar simultáneamente el contenido de las ventanas cuando los documentos se están comparando uno al lado del otro. False deshabilita el desplazamiento simultáneo de las ventanas.

ActiveWindow.Selection.SyncScrollingSideBySide = True