Endring av størrelsen på en tekstboks i en makro

May 18  by Eliza

Rob har en tekstboks, i et regneark, som inneholder tekst som er kopiert fra Word. Han ønsker å vite hvordan han kan endre størrelsen på tekstboksen ved hjelp av en makro, slik at det dekker et bestemt område med celler.

Det er et par måter du kan nærme seg denne oppgaven. Det ene er å spesifisere, i makro, nøyaktig hvilke celler du ønsker å dekke med tekstboksen, og deretter justere egenskapene tekstboksen for å matche egenskapene til cellene du angir.

Sub ResizeBox1 ()
Dim StL As String
Dim SBR As String
Dim RNG Som Range

'Endre øverst til venstre og nederst til høyre adresser som ønsket
StL = "A1"
SBR = "M40"

"Sikre en tekstboks er valgt
Hvis Typename (Utvalg) <> "TextBox" Da
MsgBox "tekstboksen ikke valgt"
Exit Sub
End If

Med markering
Satt RNG = ActiveSheet.Range (STL)
.Øverst = Rng.Top
.Left = Rng.Left
Satt RNG = ActiveSheet.Range (SBR)
.Width = Rng.Left + rng.Width
.Height = Rng.Top + rng.Height
Avslutt med
Satt RNG = Nothing
End Sub

For å kunne bruke makro, endre adressen til cellene du vil bruke for den øverste venstre og nederst til høyre for tekstboksen. Deretter velger du tekstboksen og kjøre makroen.

Hvis du foretrekker det, kan du bruke et navngitt område for å angi området som skal dekkes av tekstboksen. Forventer følgende makro at området skal hete RangeToCover. Når du velger tekstboksen og kjøre makroen, er tekstboksen endret for å matche størrelsen på området.

Sub ResizeBox2 ()
Dim l_rRangeToCover Som Range
Dim l_rLowerRight Som Range

"Sikre en tekstboks er valgt
Hvis Typename (Utvalg) <> "TextBox" Da
MsgBox "tekstboksen ikke valgt"
Exit Sub
End If

'Få området til å dekke
Satt l_rRangeToCover = _
ActiveSheet.Range (Navn ("RangeToCover"). RefersToRange.Value)

"Get sin nedre høyre celle
Satt l_rLowerRight = _
l_rRangeToCover.Cells (_
l_rRangeToCover.Rows.Count, _
l_rRangeToCover.Columns.Count)

«Endre størrelse på tekstboksen
Med markering
.Left = L_rRangeToCover.Left
.Øverst = L_rRangeToCover.Top
.Width = L_rLowerRight.Left + l_rLowerRight.Width - .Left
.Height = L_rLowerRight.Top + l_rLowerRight.Height - .Øverst
Avslutt med
End Sub

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (3143) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Endring av størrelsen på en tekstboks i en makro.