In deze zelfstudie leren we hoe u Visual Basic for Applications (VBA) kunt gebruiken om de tekstgrootte en -stijl in een Excel-cel aan te passen op basis van de celinhoud. Deze tutorial is van toepassing op Excel 365, 2021, 2019 en 2016.
voorrondes
Als Excel VBA-ontwikkeling nieuw voor u is, raad ik u aan om, voordat u de tutorial doorloopt, eerst naar onze Excel VBA-macro-primer te kijken.
Voordat u begint met coderen, moet u uw ontwikkelaarstabblad op Excel in het lint inschakelen, omdat u anders geen toegang hebt tot uw Visual Basic Editor.
Wijzig de eigenschappen van uw Excel-celtekst met VBA
Definieer uw spreadsheet
We beginnen met het definiëren van een Excel-spreadsheet die we als voorbeeld zullen gebruiken. Voel je vrij om het te gebruiken om deze tutorial te volgen.
- Open Microsoft Excel en maak een nieuwe Macro Enabled Excel-werkmap ( .xlsm ) met de naam Excel_Macros.xlsm
- Sla uw spreadsheet op uw lokale schijf op.
- Ga je gang in het werkblad Blad1 en voeg de onderstaande tabel toe:

- Klik nu vanuit het lint op Formules .
- Druk vervolgens op Definieer naam .
- Definieer een benoemd bereik waarop u uw VBA-code toepast zoals hieronder weergegeven en druk op OK .

Gebruik de Cell.Font VBA-eigenschap om de kleur en stijl van het lettertype te wijzigen
- Ga naar het tabblad Ontwikkelaars .
- Ga vervolgens door en druk op de Visual Basic - knop.
- Markeer in de Projectverkenner aan de linkerkant het project Excel_Macros.xlsm en klik vervolgens op Invoegen en kies Module .
- Er wordt een nieuwe VBA-module met de naam Module1 gemaakt.
- Ga je gang en plak de volgende code in de nieuw gemaakte 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
- Druk op de knop Opslaan in uw Visual Basic-editor.
- Druk nu op Uitvoeren en kies vervolgens Sub/UserForm uitvoeren (of druk gewoon op F5).
- Ga naar je werkblad 1 en merk de wijzigingen op. Aan uw tabelinvoeringen zijn meerdere kleurcodes toegewezen op basis van hun tekst (met behulp van de RGB-kleurfunctie), en we hebben de tekst ook vetgedrukt en vergroot.

- Als u uw code niet hebt opgeslagen, drukt u op de knop Opslaan (of Ctrl+S) en slaat u vervolgens ook uw werkmap op.
Toegang tot uw VBA-macro
- Merk op dat uw code altijd beschikbaar is om uit te voeren vanaf de opdracht Macro's op het tabblad Weergave (of als alternatief in Ontwikkelaar | Macro's)

Bonus: celstijl
Excel biedt de mogelijkheid om celstijlen te maken. Stijlen zijn te vinden in het Home-lint > Stijlen:

Met stijlen kunt u de gewenste celopmaak opslaan. Wijs die stijl vervolgens toe aan een nieuwe cel en alle celopmaak wordt onmiddellijk toegepast. Inclusief lettergrootte, celkleur, celbeveiligingsstatus en al het andere dat beschikbaar is via het Celopmaakmenu:

Persoonlijk maak ik voor veel van de modellen waaraan ik werk meestal een ‘Invoer’-celstijl:
Bereik("a1"). Stijl = "Invoer"
Door stijlen te gebruiken, kunt u ook eenvoudig celtypen op uw werkblad identificeren. In het onderstaande voorbeeld worden alle cellen in het werkblad doorlopen en wordt elke cel met Style = "Input" gewijzigd in "InputLocked":
Cel dimmen als bereik
Voor elke cel in ActiveSheet.Cells
Als Cell.Style = "Invoer" dan Cell.Style = "InputLocked"
Stop als
Volgende cel