Formatowanie komórek i czcionek w Excel VBA

1. Formatowanie komórek i czcionek – wprowadzenie

Komórki jak i inne elementy arkusza Excela możemy formatować z poziomu kodu VBA. Same formatowanie możemy robić na 2 sposoby. Pierwszym sposobem jest ustawienie każdego formatu za pomocą osobnego bloku kodu. Możemy także użyć klauzuli With do formatowania komórek i czcionek, co uprości sprawę. Możemy w ten sposób odnieść się raz do naszego obiektu i wstawić dowolne formaty. Możemy formatować dowolne parametry, dokładnie tak, jakbyśmy to robili bezpośrednio w Excelu. Jeśli nie wiesz w jaki sposób napisać blok kodu, by sformatować dowolną komórkę lub jej zawartość, najlepszym sposobem będzie tutaj nagranie takiego formatowania za pomocą rejestratora makr, a następnie przeanalizowanie spisanego kodu. W formatowaniu możemy odnieść się zarówno do pojedynczej komórki poprzez odwołanie Cells(), jak i całego zakresu używając w tym celu obiektu Range(). By przeprowadzić nasze ćwiczenie wypełnijmy zakres A1:A20 dowolnym tekstem.

Kurs Excel VBA - Formatowanie komórek i czcionek
Kurs Excel VBA – Formatowanie komórek i czcionek

2. Formatowanie czcionek – Jak formatować czcionki w VBA

Najprostszym sposobem sformatowania czcionki np poprzez ustawienie jej wielkości, jest zaznaczenie komórki, następnie odniesienie się do czcionki i jej konkretnej właściwości, w naszym przypadku jej rozmiaru. Przykład poniżej.

Sub FontFormatingExample()
Range("A1").Select
Selection.Font.Size = 20
End Sub

Jeśli chcielibyśmy sformatować więcej niż jedną właściwość czcionki jednocześnie, nie musimy pisać kolejnych powtarzających się bloków kodu. Korzystamy w tym wypadku z klauzuli With. Tak jak w pierwszym przykładzie odniesiemy się do wybranego zakresu. Następnie zmienimy wielkość czcionki, pogrubimy ją i ustawimy czcionkę jako Arial.

Sub FontFormatingExample()

Range("A2").Select
With Selection.Font
.Size = 20
.Bold = True
.Name = "Arial"
End With

End Sub

W ten właśnie sposób możemy formatować dowolną właściwość czcionek w arkuszach Excela. Poniżej najważniejsze właściwości, z których możemy korzystać.

Sub FontFormatingExample()

Range("A5").Select
With Selection.Font
.Size = 25 'Rozmiar
.Bold = True 'pogrubienie True/False
.Color = vbBlack 'kolor
.Italic = True 'pochylenie True/False
.Name = "Arial" 'rodzaj czcionki
.Underline = True 'podkreślenie True/False
End With

End Sub

W VBA kolory możemy zapisywać na kilka różnych sposobów. Możemy stosować zarówno stosować oficjalne nazewnictwo VBA poprzedzając nazwę prefiksem vb, jak i korzystać z kolorów RGB.

Nazwa VBANazwa RGB
vbBlackRGB(0 ,0, 0)
vbWhiteRGB(255 ,255, 255)
vbRedRGB(255, 0, 0)
vbGreenRGB(0, 255, 0)
vbBlueRGB(0 ,0, 255)
vbYellowRGB(255, 255, 0)
vbMagentaRGB(255 ,0, 255)
vbCyanRGB(0 ,255, 255)

3. Formatowanie komórek – Jak formatować komórki w VBA

W przypadku wnętrz komórek , tak jak i w przypadku czcionek możemy odnieść się do pojedynczej właściwości wnętrza komórki. Jeśli chcemy zmienić kolory, stosujemy tutaj również kolory opisane w poprzednim punkcie.

Sub InteriorFormatingExample()
Range("A4").Select
Selection.Interior.Color = 65535
End Sub

Stosując klauzulę With możemy zmienić następujące własności wnętrza komórek:

Sub InteriorFormatingExample()
 Range("A12:A14").Select
 With Selection.Interior
 .Pattern = xlSolid 'wzór wypełnienia komórki
 .PatternColorIndex = 1 'xlAutomatic 'wzór koloru, przyjmuje wartości od 1 do 56
 .Color = RGB(0, 0, 255) ' ustawia kolor wnętrza komórki przyjmuje wartości vbColor lub RGB
 .TintAndShade = 0 'cień i odcień
 .PatternTintAndShade = 0 'cień i odcień wg. wzoru
 End With
End Sub

4. Formatowanie zaznaczenia – Jak formatować zakres w VBA

Prócz czcionek i wnętrz komórek możemy formatować także pozostałe parametry dotyczące komórki. Możemy ustawić np zawijanie tekstu lub też scalanie komórek. Szczegółowy opis parametrów, które możemy wykorzystać zamieszczam poniżej.

Sub FormatingSelection()
Range("A15:A20").Select
With Selection
.HorizontalAlignment = xlLeft 'równanie tekstu do lewej/prawej x1Left/xlRight
.VerticalAlignment = xlBottom 'równanie tekstu do góry/dołu xlTop/x1Bottom
.WrapText = False 'zawijanie wierszy True/False
.Orientation = -1 'orientacja tekstu -1 automatyczna, 0 pionowa, 1 pozioma
.AddIndent = True 'wstawia akapit, przyjmuje wartości True/False
.IndentLevel = 10 'Wcięcie tekstu, wprowadzamy liczbę znaków wcięcia
.ShrinkToFit = False 'dopasowuje wielkość tekstu do komórki , przyjmuje wartości True/False
.MergeCells = False 'Scalanie komórek True/False
End With
End Sub

5. Zadania (Rozwiązanie możesz wpisać w komentarzu)

5.1 Napisz makro, które wykona następujące operacje na komórkach: Wypełni 5 sąsiadujących ze sobą komórek arkusza dowolnym tekstem. Następnie je scali, ustawi wielkość czcionki na 24, użyje czcionki Arial. Następnie pogrub czcionkę. Kolor wnętrza komórki zmień na zielony używając kolorów RGB.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

15 komentarzy “Formatowanie komórek i czcionek w Excel VBA”