Come ridimensionare una casella di testo in una macro

Roberto 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.

Esistono 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
    ' Modifica gli estremi in alto a sinistra e in basso a destra come desideri
    sTL = "A1"
    sBR = "M40"
    ' Si assicura che una casella di testo sia selezionata
    If TypeName(Selection) <> "TextBox" Then
        MsgBox "Casella di testo non selezionata"
        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 la parte 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 venga denominato IntervalloDaCoprire. Quando si seleziona la casella di testo ed si esegue la macro, la casella di testo viene ridimensionata in modo che corrisponda alla dimensione dell’intervallo.

 

Sub ResizeBox2()
    Dim l_rRangeToCover As Range
    Dim l_rLowerRight As Range
    ' Si assicura che una casella di testo sia selezionata
    If TypeName(Selection) <> "TextBox" Then
        MsgBox "Casella di testo non selezionata"
        Exit Sub
    End If
    ' Ottiene l'intervallo di coprire
    Set l_rRangeToCover = _
      ActiveSheet.Range(Names("IntervalloDaCoprire").RefersToRange.Value)
    ' Ottiene la sua cella in basso a destra
    Set l_rLowerRight = _
      l_rRangeToCover.Cells( _
      l_rRangeToCover.Rows.Count, _
      l_rRangeToCover.Columns.Count)
    ' Ridimensiona la casella di testo
    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

 

 

 

Tags: , , , , , , , , , , , , , , , , , , , ,

Ti è stato utile?