VBA Tools

Auto dopasowanie wysokości do tekstu komórek zcalonych

napisane przez Oskar w dniu piątek, 20 Maj, 2011, w kategorii Porady - Excel

Excel posiada możliwość scalenia komórek, jednakże nie radzi sobie z ich zarządzaniem. W przypadku jednej komórki jest to prosta sprawa. Funkcja auto dopasowania wysokości, szerokości, zawijania tekstu jest elementarna ale dla kilka cell zagregowanych razem jest już problem.

Poniższa procedura umieszczona w module ThisWorkbook pozwoli na automatyczne dobranie wysokości komórek do tekstu. Oczywiście ważną rolę odbiera tutaj rodzaj czcionki. Przydatne jest to głównie w przypadku tekstu, opisującego pola arkusza dla różnego rodzaju formularzy Excelowych.

Private Sub Worksheet_Change(ByVal Target As Range)
'Mod by MVP OShon from VBATools.pl
Dim NewRwHt As Single
Dim cWdth As Single, MrgeWdth As Single
Dim c As Range, cc As Range
Dim ma As Range, wysokosc As Currency

With Target
 wysokosc = .RowHeight
 If .MergeCells And .WrapText Then
 Set c = Target.Cells(1, 1)
 cWdth = c.ColumnWidth
 Set ma = c.MergeArea
 For Each cc In ma.Cells
  MrgeWdth = MrgeWdth + cc.ColumnWidth
 Next
 If wysokosc > c.RowHeight Then Exit Sub
   Application.ScreenUpdating = False
   ma.MergeCells = False
   c.ColumnWidth = MrgeWdth
   c.EntireRow.AutoFit
   NewRwHt = c.RowHeight
   c.ColumnWidth = cWdth
   ma.MergeCells = True
   If NewRwHt > wysokosc Then
     ma.RowHeight = NewRwHt
   Else
     ma.RowHeight = wysokosc
   End If
  cWdth = 0: MrgeWdth = 0
  Application.ScreenUpdating = True
 End If
End With
End Sub

(c) Shon Oskar – www.VBATools.pl

Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.

Podziel się ze znajomymi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Blip
  • Grono
  • Gwar
  • Kciuk.pl
  • LinkedIn
  • MySpace
  • OSnews.pl
  • Śledzik
  • Spis.pl
  • Technorati
  • Twitter
  • Vala.pl
  • Wahacz.pl
  • Wykop

Wpisz swój komentarz:

Comment Spam Protection by WP-SpamFree