Formatowanie komórek i czcionek w Excel VBA 12


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.

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.

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ć.

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.

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

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.

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 email nie zostanie opublikowany.

12 komentarzy do “Formatowanie komórek i czcionek w Excel VBA

  • Kuba

    Zadanie 5.1

    Sub Zadanie_5_1()

    Range(“A3:E3”).Select

    With Selection

    .MergeCells = True

    End With
    With Selection.Font

    .Size = 24
    .Name = “Arial”
    .Bold = True

    End With

    With Selection.Interior
    Selection.Interior.Color = RGB(0, 255, 0)

    End With

    End Sub

  • Grzegorz_Gie

    Rozwiązanie zadania (tylko przy scalaniu bierze wartość komórki pierwszej od lewej strony więc nie pokażą się wszystkie dane)

    Sub zadanie_8()
    Dim a As Integer
    a = 1
    Cells(1, a) = “Imię ”
    Cells(1, a + 1) = “Nazwisko ”
    Cells(1, a + 2) = “Dzień urodzenia ”
    Cells(1, a + 3) = “Miesiąc urodzenia ”
    Cells(1, a + 4) = “Rok urodzenia ”
    Range(“a1:e1”).Select
    With Selection
    .MergeCells = True
    .Font.Name = “Arial”
    .Font.Size = 24
    .Font.Bold = True
    .Interior.Color = RGB(0, 255, 0)
    End With
    End Sub

    PS. Super jest ten kurs. Jakiś czas temu kupiłem inny kurs z VBA ale tutaj zdecydowanie lepiej idzie mi przyswajanie wiedzy. Bardzo dziękuje za możliwość nauki i czerpania wiedzy z tego kursu. Kto powiedział, że nauka nie może być przyjemna 😉

  • Rafał

    Sub zadankoo()

    Application.DisplayAlerts = False

    Range(“A1:E1”).Value = “przyklad”

    Range(“A1:E1”).Select
    With Selection
    .MergeCells = True
    End With

    ActiveCell.Select
    With Selection.Font
    .Size = 24
    .Name = “Arial”
    .Bold = True
    End With

    ActiveCell.Select
    With Selection.Interior
    .Color = vbGreen
    End With

    End Sub

    • Rafał

      Dodałem Application.DisplayAlerts = False aby nie pojawiał się komunikat przy scalaniu komórek 🙂

  • Marcin

    Sub FormatowanieCzcionek7()

    Sheets(“Arkusz2”).Select
    Range(“A1”, “E1”) = “Dowolny tekst”

    Range(“A1”, “E1”).Select
    With Selection
    .MergeCells = True
    .Font.Size = 24
    .Font.Name = “Arial”
    .Font.Bold = True
    .Interior.Color = RGB(0, 255, 0)
    .HorizontalAlignment = xlCenter
    End With

    End Sub

  • Maciek

    Sub FormatingExample()

    Application.DisplayAlerts = False

    With Range(“B1:B5”)
    .MergeCells = False
    .Value = “Random Text”

    With .Font
    .Size = 24
    .Name = “Arial”
    .Bold = True

    End With

    .Interior.Color = rgbCadetBlue
    .MergeCells = True

    End With

    End Sub

  • Ewa

    Sub FormatowanieKomorek()

    Cells.Delete

    Range(“G2:K2”) = “Dzień dobry”
    With Range(“G2:K2”)
    .MergeCells = True
    .Font.Size = 24
    .Font.Name = “Arial”
    .Font.Bold = True
    .Interior.Color = RGB(0, 255, 0)
    End With

    End Sub