Formatowanie arkusza Excel za pomocą kodu VBA jest niezbędne jeżeli chcemy:
Podstawowe właściwości tekstu wpisanego w komórkę arkusza, przechowywane są w obiekcie Cells.Font.
Aby zmienić rozmiar tekstu wpisujemy wielkość w punktach:
Pogrubienie tekstu:
Pochylenie tekstu:
Podkreślenie tekstu:
Przekreślenie tekstu:
Indeks dolny:
Indeks górny:
Ponadto możliwe jest określenie kierunku tekstu w komórce:
Powyższy kod spowoduje, że tekst w komórce C1 wpisywany będzie w kierunku od dołu do góry. Wartość 0 oznacza standardowy tekst poziomy.
W celu wyrównania tekstu w poziomie użyjemy składni:
Parametry w formatowaniu poziomym tekstu:
i parametry wyrównania pionowego:
Powyższy kod wpisze do komórki A5 symbol H2O. W pierwszej linijce wpisany został tekst a w drugiej za pomocą składni Characters.Font możemy sformatować tylko wybrane znaki. We właściwości Characters(2, 1) 2 oznacza numer znaku od którego rozpoczynamy formatowanie natomiast 1 to ilość znaków do formatowania.
Przy okazji, aby sprawdzić ilość znaków w komórce możemy użyć polecenia:
Formatując komórki w arkuszu Excel nie możemy zapominać o sposobie wyświetlania wartości przez program. Aby ustawić specyficzny sposób wyświetlania wykorzystamy właściwość NumberFormat:
Kod spowoduje, że wartości w komórce A5 wyświetlane będą z precyzją 2 miejsc po przecinku.
Możemy użyć następujących sposobów wyświetlania wartości:
Aby zmienić kolor tekstu komórki używamy składni:
gdzie rgbRed oznacza stałą koloru czerwonego.
Jeżeli nie możemy znaleźć specyficznego koloru możemy zapisać go za pomocą składni RGB:
W przykładzie zapisany został kod koloru czerwonego. Szczegółowe informacje na temat kolorowania tekstu znajdziemy w artykule Jak w Excel zmienić kolor tekstu komórki?
Zmiana koloru wypełnienia komórki:
Kod spowoduje pokolorowanie komórki na kolor żółty.
Obramowania komórek
Aby rysować obramowania komórek użyjmy kodu:
Kod spowoduje obramowanie komórki A2.
Parametr LineStyle określa styl linii obramowania i może przyjąć wartość:
Kod zmieni kolor ramki na czerwony. Ustalając kolor obramowania nie wykorzystujemy parametru ColorIndex.
Ramki można rysować nad/pod/z prawej/z lewej strony komórki. I tak kod:
zmieni tylko prawe obramowanie komórki C2.
Możemy formatować krawędzie komórek za pomocą parametrów:
Aby formatować nie jedną komórkę ale cały zakres komórek musimy użyć obiekt Range:
Kod narysuje tabelkę (ramki) w zakresie od E2 do G4
Zakres komórek można zapisać również tak:
Komórka A2 (2,1) jest początkiem obszaru natomiast C4 (4,3) końcem.
- ujednolicić wygląd generowanych dokumentów
- odciążyć pracowników od pracochłonnych czynności związanych z wyglądem dokumentów
Podstawowe właściwości tekstu wpisanego w komórkę arkusza, przechowywane są w obiekcie Cells.Font.
Aby zmienić rozmiar tekstu wpisujemy wielkość w punktach:
Cells(1, 1).Font.Size = 15
Pogrubienie tekstu:
Cells(1, 1).Font.Bold = True
Pochylenie tekstu:
Cells(1, 1).Font.Italic = True
Podkreślenie tekstu:
Cells(1, 1).Font.Underline = True
Przekreślenie tekstu:
Cells(1, 1).Font.Strikethrough = True
Indeks dolny:
Cells(1, 2).Font.Subscript = True
Indeks górny:
Cells(1, 3).Font.Superscript = True
Ponadto możliwe jest określenie kierunku tekstu w komórce:
Cells(1, 3).Orientation = 90
Powyższy kod spowoduje, że tekst w komórce C1 wpisywany będzie w kierunku od dołu do góry. Wartość 0 oznacza standardowy tekst poziomy.
W celu wyrównania tekstu w poziomie użyjemy składni:
Cells(1, 3).HorizontalAlignment = xlCenter
Parametry w formatowaniu poziomym tekstu:
- xlCenter - tekst wyśrodkowany
- xlDistributed - tekst zawsze zaczyna się przy lewej a kończy przy prawej krawędzi komórki
- xlJustify - tekst wyjustowany
- xlLeft - tekst z lewej
- xlRight - tekst z prawej
Cells(1, 3).VerticalAlignment = xlCenter
i parametry wyrównania pionowego:
- xlBottom - tekst na dole komórki
- xlCenter - tekst w środku komórki
- xlDistributed - tekst zaczyna się i kończy przy krawędziach komórki
- xlJustify - tekst wyjustowany w pionie
- xlTop - tekst na górze komórki
Cells(5, 1).Value = "H2O"
Cells(5, 1).Characters(2, 1).Font.Subscript = True
Powyższy kod wpisze do komórki A5 symbol H2O. W pierwszej linijce wpisany został tekst a w drugiej za pomocą składni Characters.Font możemy sformatować tylko wybrane znaki. We właściwości Characters(2, 1) 2 oznacza numer znaku od którego rozpoczynamy formatowanie natomiast 1 to ilość znaków do formatowania.
Przy okazji, aby sprawdzić ilość znaków w komórce możemy użyć polecenia:
n = Cells(5, 1).Characters.Count
Formatując komórki w arkuszu Excel nie możemy zapominać o sposobie wyświetlania wartości przez program. Aby ustawić specyficzny sposób wyświetlania wykorzystamy właściwość NumberFormat:
Cells(5, 1).NumberFormat = "0.00"
Kod spowoduje, że wartości w komórce A5 wyświetlane będą z precyzją 2 miejsc po przecinku.
Możemy użyć następujących sposobów wyświetlania wartości:
- NumberFormat = "General" - formatowanie ogólne
- NumberFormat = "0" - Zapis liczbowy - odpowiednia ilość miejsc po przecinku
- NumberFormat = "0.0"
- NumberFormat = "0.00"
- NumberFormat = "0.000"
- NumberFormat = "0.0000"
- NumberFormat = "#,##0.00 $" - Zapis walutowy
- NumberFormat = "m/d/yyyy" - data krótka
- NumberFormat = "[$-F800]dddd, mmmm dd, yyyy" - data długa
- NumberFormat = "[$-F400]h:mm:ss AM/PM" - Godzina
- NumberFormat = "0.00%" - zapis procentowy
- NumberFormat = "# ?/?" - zapis liczby w postaci ułamka
- NumberFormat = "0.00E+00" - format naukowy liczb - zapis wykładniczy
- NumberFormat = "@" - zapis tekstowy
Aby zmienić kolor tekstu komórki używamy składni:
Cells(1, 1).Font.Color = rgbRed
gdzie rgbRed oznacza stałą koloru czerwonego.
Jeżeli nie możemy znaleźć specyficznego koloru możemy zapisać go za pomocą składni RGB:
Cells(1, 1).Font.Color =RGB(255,0,0)
W przykładzie zapisany został kod koloru czerwonego. Szczegółowe informacje na temat kolorowania tekstu znajdziemy w artykule Jak w Excel zmienić kolor tekstu komórki?
Zmiana koloru wypełnienia komórki:
Cells(1, 1).Interior.Color = rgbYellow
Kod spowoduje pokolorowanie komórki na kolor żółty.
Obramowania komórek
Aby rysować obramowania komórek użyjmy kodu:
With Cells(2, 1).Borders
.LineStyle = xlContinuous
.ColorIndex = xlColorIndexAutomatic
.Weight = 2
End With
Kod spowoduje obramowanie komórki A2.
Parametr LineStyle określa styl linii obramowania i może przyjąć wartość:
- xlAutomatic - styl automatyczny
- xlContinuous - linia ciągła
- xlDash - linia przerywana
- xlDashDot - kreska - kropka
- xlDashDotDot - kreska i dwie kropki
- xlDot - linia z kropek
- xlDouble - podwójna linia
- xlLineStyleNone - bez linii
- xlSlantDashDot
- xlGray25 - kolor siwy 25%
- xlGray50 - kolor siwy 50%
- xlGray75 - kolor siwy 75%
- xlColorIndexNone - brak obramowania
- xlColorIndexAutomatic - kolor automatyczny
- 1 - linia kropkowana
- 2 - linia cienka - lub xlThin
- 3 - linia gruba - lub xlThick
- 4 - linia bardzo gruba
.Color = rgbRed
Kod zmieni kolor ramki na czerwony. Ustalając kolor obramowania nie wykorzystujemy parametru ColorIndex.
Ramki można rysować nad/pod/z prawej/z lewej strony komórki. I tak kod:
Cells(2, 3).Borders(xlEdgeRight).LineStyle = xlContinuous
zmieni tylko prawe obramowanie komórki C2.
Możemy formatować krawędzie komórek za pomocą parametrów:
- xlEdgeTop - górna krawędź komórki
- xlEdgeBottom - dolna krawędź komórki
- xlEdgeLeft - lewa krawędź komórki
- xlEdgeRight - prawa krawędź komórki
- xlDiagonalUp - komórka przekreślona w górę
- xlDiagonalDown - komórka przekreślona w dół
Aby formatować nie jedną komórkę ale cały zakres komórek musimy użyć obiekt Range:
Range("E2:G4").Borders.LineStyle = xlContinuous
Kod narysuje tabelkę (ramki) w zakresie od E2 do G4
Zakres komórek można zapisać również tak:
Range(Cells(2, 1), Cells(4, 3)).Interior.Color = rgbYellow
Komórka A2 (2,1) jest początkiem obszaru natomiast C4 (4,3) końcem.
super ściągawka ;) thx
OdpowiedzUsuń