Giada lavora con molti fogli di lavoro abbastanza lunghi che contengono dati che potrebbe dover stampare. Una volta effettuata la stampa, scrive nello spazio accanto alla colonna dei dati. Tutte le righe vengono ridimensionate automaticamente per adattarsi ai contenuti, pertanto variano in altezza. Giada sta cercando una macro che prenda le righe selezionate e le aumenti di una determinata percentuale (poiché hanno altezze diverse, non può semplicemente impostarle tutte alla stessa altezza). In questo modo, può rendere le righe sufficientemente alte per la scrittura a mano, ma essere comunque in grado di vedere tutti i dati. Sarebbe anche bello avere un modo per riportare l’altezza delle righe a quella che era prima della stampa.
Questa attività è molto semplice da eseguire con una macro. Tutto quello che devi fare è scorrere le righe selezionate e regolare la proprietà RowHeight, come avviene in questa macro:
Sub ExpandSelectedRows()
Dim rRow As Range
Dim dEnlarge As Double
dEnlarge = 1.25
For Each rRow In Selection.Rows
rRow.RowHeight = rRow.RowHeight * dEnlarge
Next
End Sub
In questo caso, la variabile dEnlarge contiene 1,25, il che significa che la formula nel ciclo For… Next aumenterà l’altezza della riga del 25%. Il valore di questa variabile può essere modificato per riflettere la percentuale che desideri utilizzare oppure puoi modificare la macro per chiedere all’utente una percentuale:
Sub ExpandSelectedRows()
Dim rRow As Range
Dim dEnlarge As Double
Dim sTemp As String
sTemp = InputBox("Di quale percentuale incrementare?")
dEnlarge = Val(sTemp)
If dEnlarge > 1 Then dEnlarge = dEnlarge / 100
If dEnlarge < 1 Then dEnlarge = dEnlarge + 1
If dEnlarge > 0 Then
For Each rRow In Selection.Rows
rRow.RowHeight = rRow.RowHeight * dEnlarge
Next
End If
End Sub
Se in seguito desideri riportare le righe alla loro altezza originale, la seguente macro a riga singola farà il lavoro:
Sub AutfitRows()
Cells.EntireRow.AutoFit
End Sub
Questa macro funziona perché le righe nel foglio di lavoro originariamente erano “dimensionate automaticamente per adattarsi ai contenuti”. Anche se si sarebbe potuto scrivere una macro per invertire i passaggi di ingrandimento (dividendo per dEnlarge invece di moltiplicare), funzionerebbe in modo affidabile solo se la macro ExpandSelectedRows non fosse stata eseguita più volte.