Cambiar el tamaño de un cuadro de texto en una macro (Microsoft Excel)
Rob tiene un cuadro de texto, en una hoja de trabajo, que contiene texto copiado de Word.
Quiere saber cómo puede cambiar el tamaño del cuadro de texto usando una macro, de modo que cubra un rango específico de celdas.
Hay un par de formas de abordar esta tarea. Una es especificar, en la macro, exactamente qué celdas desea cubrir con el cuadro de texto y luego ajustar las propiedades del cuadro de texto para que coincidan con las características de las celdas que especifique.
Sub ResizeBox1() Dim sTL As String Dim sBR As String Dim rng As Range ' Change top-left and bottom-right addresses as desired sTL = "A1" sBR = "M40" ' Ensure a text box is selected If TypeName(Selection) <> "TextBox" Then MsgBox "Text box not selected" Exit Sub End If With Selection Set rng = ActiveSheet.Range(sTL) .Top = rng.Top .Left = rng.Left Set rng = ActiveSheet.Range(sBR) .Width = rng.Left + rng.Width .Height = rng.Top + rng.Height End With Set rng = Nothing End Sub
Para usar la macro, cambie la dirección de las celdas que desea usar para la parte superior izquierda e inferior derecha del cuadro de texto. Luego, seleccione el cuadro de texto y ejecute la macro.
Si lo prefiere, puede usar un rango con nombre para especificar el rango que debe cubrir el cuadro de texto. La siguiente macro espera que el rango se denomine RangeToCover. Cuando selecciona el cuadro de texto y ejecuta la macro, el cuadro de texto cambia de tamaño para que coincida con el tamaño del rango.
Sub ResizeBox2() Dim l_rRangeToCover As Range Dim l_rLowerRight As Range ' Ensure a text box is selected If TypeName(Selection) <> "TextBox" Then MsgBox "Text box not selected" Exit Sub End If ' Get the range to cover Set l_rRangeToCover = _ ActiveSheet.Range(Names("RangeToCover").RefersToRange.Value) ' Get its lower right cell Set l_rLowerRight = _ l_rRangeToCover.Cells( _ l_rRangeToCover.Rows.Count, _ l_rRangeToCover.Columns.Count) ' Resize the text box With Selection .Left = l_rRangeToCover.Left .Top = l_rRangeToCover.Top .Width = l_rLowerRight.Left + l_rLowerRight.Width - .Left .Height = l_rLowerRight.Top + l_rLowerRight.Height - .Top 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 (10185) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
link: / excel-Resizing_a_Text_Box_in_a_Macro [Cambiar el tamaño de un cuadro de texto en una macro]
.