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: