Ridimensionare una casella di testo in una macro (Microsoft Excel)
Rob ha una casella di testo, in un foglio di lavoro, che contiene testo copiato da Word.
Vuole sapere come ridimensionare la casella di testo utilizzando una macro, in modo che copra un intervallo specifico di celle.
Ci sono un paio di modi in cui puoi affrontare questo compito. Uno è specificare, nella macro, esattamente quali celle si desidera coprire con la casella di testo, quindi regolare le proprietà della casella di testo in modo che corrispondano alle caratteristiche delle celle specificate.
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
Per utilizzare la macro, modifica l’indirizzo delle celle che desideri utilizzare per l’angolo in alto a sinistra e in basso a destra della casella di testo. Quindi, seleziona la casella di testo ed esegui la macro.
Se preferisci, puoi utilizzare un intervallo denominato per specificare l’intervallo che deve essere coperto dalla casella di testo. La macro seguente prevede che l’intervallo verrà denominato RangeToCover. Quando si seleziona la casella di testo e si esegue la macro, la casella di testo viene ridimensionata in modo che corrisponda alle dimensioni dell’intervallo.
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: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (3143) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: