Recordando la posición y el tamaño del libro de trabajo (Microsoft Excel)
Walter tiene la necesidad de abrir siempre un libro de Excel en particular en la misma ubicación en la pantalla y con un tamaño de ventana particular. Se pregunta si hay alguna manera de hacer que Excel recuerde esta información de ubicación y tamaño al cerrar el libro de trabajo para que se use la próxima vez que se abra ese mismo libro.
Una solución relativamente simple es colocar su libro de trabajo (o, a menudo, los libros de trabajo) como desee en la pantalla y luego guardar los libros de trabajo como un espacio de trabajo. Para ello, muestre la pestaña Ver de la cinta y haga clic en la herramienta Guardar espacio de trabajo. Sin embargo, debe tenerse en cuenta que este enfoque solo funciona en Excel 2007 y Excel 2010; la capacidad de crear espacios de trabajo se eliminó de Excel 2013, aunque aún puede abrirlos.
Para una solución que funcione en todas las versiones modernas de Excel, necesitará usar una macro. Puede configurar una macro que se ejecute automáticamente cuando cierre el libro de trabajo y otra que se ejecute cuando lo abra. El que se ejecuta cuando se cierra puede guardar información de posicionamiento, y luego el que se ejecuta cuando se abre puede recuperar esa información y usarla para ubicar dónde debe mostrarse el libro.
Sin embargo, la pregunta es dónde guardar la información de posicionamiento. Una solución es simplemente escribirlo en un archivo de texto en la misma carpeta donde está almacenado el libro. Ese es el enfoque adoptado en el siguiente par de macros.
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim fileName As String Dim myWindow As Window Set myWindow = ActiveWindow fileName = "config.txt" Open fileName For Output As #1 With myWindow Write #1, .Top Write #1, .Left Write #1, .Height Write #1, .Width End With Close #1 End Sub
Private Sub Workbook_Open() Dim inputStr As String Dim fileName As String Dim myWindow As Window Set myWindow = ActiveWindow fileName = "config.txt" If Dir(fileName) <> "" Then Open fileName For Input As #1 With myWindow .WindowState = xlNormal Line Input #1, inputStr .Top = inputStr Line Input #1, inputStr .Left = inputStr Line Input #1, inputStr .Height = inputStr Line Input #1, inputStr .Width = inputStr End With Close #1 End If End Sub
La macro que se ejecuta cuando se cierra el libro guarda las cuatro ubicaciones de posicionamiento (.Top, .Left, .Height y .Width) en un archivo llamado config.txt. Este archivo se lee la próxima vez que se abra el libro y se establezcan las propiedades adecuadas para la ventana del libro.
Si falta el archivo config.txt por algún motivo, el libro se abre en su ubicación predeterminada.
Este enfoque funciona muy bien si tiene un solo libro de trabajo en la carpeta que usa la información de posicionamiento. Si tiene varios, cada uno sobrescribirá el archivo config.txt y es probable que termine con los libros de trabajo que no se abren donde los desea.
Para algunas personas, un mejor enfoque puede ser almacenar las ubicaciones de posicionamiento en el libro de trabajo, en referencias con nombre. Ese es el enfoque adoptado en las siguientes macros.
Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next With ThisWorkbook With .Names .Add Name:="WinTop", RefersToR1C1:="=1" .Add Name:="WinLeft", RefersToR1C1:="=1" .Add Name:="WinWidth", RefersToR1C1:="=1" .Add Name:="WinHeight", RefersToR1C1:="=1" End With On Error GoTo 0 .Names("WinTop").RefersTo = ActiveWindow.Top .Names("WinLeft").RefersTo = ActiveWindow.Left .Names("WinWidth").RefersTo = ActiveWindow.Width .Names("WinHeight").RefersTo = ActiveWindow.Height End With End Sub
Private Sub Workbook_Open() With ThisWorkbook ActiveWindow.Top = Val(Mid(.Names("WinTop").RefersTo, 2)) ActiveWindow.Left = Val(Mid(.Names("WinLeft").RefersTo, 2)) ActiveWindow.Width = Val(Mid(.Names("WinWidth").RefersTo, 2)) ActiveWindow.Height = Val(Mid(.Names("WinHeight").RefersTo, 2)) End With End Sub
Con este enfoque, puede transferir fácilmente el libro de trabajo a cualquier lugar que desee y las macros se encargan de guardar y reutilizar la información de posicionamiento para la ventana del libro de trabajo.
_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 (10091) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.