W tym samouczku dowiemy się, jak używać języka Visual Basic for Applications (VBA) do modyfikowania rozmiaru i stylu tekstu w komórce programu Excel na podstawie zawartości komórki. Ten samouczek dotyczy programu Excel 365, 2021, 2019 i 2016.
Czynności wstępne
Jeśli jesteś nowy w programowaniu Excel VBA, przed przejściem do samouczka polecam zapoznanie się z naszym podkładem makr Excel VBA.
Przed rozpoczęciem kodowania należy włączyć kartę Deweloper w programie Excel na Wstążce, ponieważ w przeciwnym razie nie będzie można uzyskać dostępu do Edytora Visual Basic.
Zmień właściwości tekstu komórki Excela za pomocą VBA
Zdefiniuj swój arkusz kalkulacyjny
Zaczniemy od zdefiniowania arkusza kalkulacyjnego Excel, którego użyjemy jako przykładu. Możesz go użyć, aby śledzić ten samouczek.
- Otwórz program Microsoft Excel i utwórz nowy skoroszyt programu Excel z obsługą makr ( .xlsm ) o nazwie Excel_Macros.xlsm
- Zapisz arkusz kalkulacyjny na dysku lokalnym.
- W arkuszu Arkusz1 dodaj poniższą tabelę:

- Teraz ze Wstążki kliknij Formuły .
- Następnie naciśnij Zdefiniuj nazwę .
- Zdefiniuj nazwany zakres, w którym zastosujesz swój kod VBA, jak pokazano poniżej, i naciśnij OK .
![Jak ustawić kolor czcionki tekstu Excel za pomocą VBA? Jak ustawić kolor czcionki tekstu Excel za pomocą VBA?]()
Użyj właściwości Cell.Font VBA, aby zmienić kolor i styl czcionki
- Przejdź do zakładki Deweloper .
- Następnie idź dalej i naciśnij przycisk Visual Basic .
- W Eksploratorze projektów po lewej stronie podświetl projekt Excel_Macros.xlsm , a następnie naciśnij Wstaw i wybierz Moduł .
- Zostanie utworzony nowy moduł VBA o nazwie Module1 .
- Śmiało i wklej następujący kod w nowo utworzonym module:
Sub Color_Cell_Text_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Completion_Status")
'loop through all cells in the range
For Each MyCell In StatusRange
StatValue = MyCell.Value
'modify the cell text values as needed.
Select Case StatValue
'green
Case "Progressing"
With MyCell.Font
.Color = RGB(0, 255, 0)
.Size = 14
.Bold = True
End With
'orange
Case "Pending Feedback"
With MyCell.Font
.Color = RGB(255, 141, 0)
.Size = 14
.Bold = True
End With
'red
Case "Stuck"
With MyCell.Font
.Color = RGB(255, 0, 0)
.Size = 14
.Bold = True
End With
End Select
Next MyCell
End Sub
- Naciśnij przycisk Zapisz w edytorze Visual Basic.
- Teraz naciśnij Run , a następnie wybierz Run Sub/UserForm (lub po prostu naciśnij F5).
- Przejdź do arkusza Arkusz1 i zwróć uwagę na zmiany. Do wpisów w tabeli przypisano wiele kodów kolorów zgodnie z ich tekstem (za pomocą funkcji kolorów RGB), a także pogrubiliśmy tekst i zwiększyliśmy jego rozmiar.
![Jak ustawić kolor czcionki tekstu Excel za pomocą VBA? Jak ustawić kolor czcionki tekstu Excel za pomocą VBA?]()
- Jeśli nie zapisałeś kodu, naciśnij przycisk Zapisz (lub Ctrl + S), a następnie zapisz skoroszyt.
Uzyskaj dostęp do makra VBA
- Pamiętaj, że Twój kod jest zawsze dostępny do uruchomienia za pomocą polecenia Makra znajdującego się na karcie Widok (lub alternatywnie w Deweloper | Makra)
![Jak ustawić kolor czcionki tekstu Excel za pomocą VBA? Jak ustawić kolor czcionki tekstu Excel za pomocą VBA?]()
Bonus: Styl komórkowy
Excel oferuje możliwość tworzenia „Stylów” komórek. Style można znaleźć na stronie Wstążka Strona główna > Style:
![style czcionek Excel VBA]()
Style umożliwiają zapisanie żądanego formatowania komórek. Następnie przypisz ten styl do nowej komórki, a całe formatowanie komórki zostanie natychmiast zastosowane. W tym rozmiar czcionki, kolor komórki, stan zabezpieczeń komórek i wszystko inne dostępne w menu Formatowanie komórki:
![menu formatowania komórek Excel]()
Osobiście dla wielu modeli, nad którymi pracuję, zwykle tworzę styl komórki „Wejście”:
Range("a1").Style = "Wejście"
Używając stylów, możesz także łatwo zidentyfikować typy komórek w arkuszu. Poniższy przykład przeprowadzi pętlę przez wszystkie komórki w arkuszu i zmieni dowolną komórkę z Style = „Input” na „InputLocked”:
Przyciemnij komórkę jako zakres
Dla każdej komórki w ActiveSheet.Cells
Jeśli Cell.Style = „Wejście” następnie Cell.Style = „InputLocked”
Zakończ jeśli
Następna komórka