I den här handledningen lär vi oss hur du använder Visual Basic for Applications (VBA) för att ändra textstorlek och stil i en Excel-cell baserat på cellinnehållet. Denna handledning gäller för Excel 365, 2021, 2019 och 2016.
Förberedelser
Om du är ny på Excel VBA-utveckling, rekommenderar jag att du innan du går igenom handledningen tittar på vår Excel VBA-makroprimer.
Innan du börjar koda bör du aktivera din utvecklarflik på Excel i menyfliksområdet, annars kommer du inte att kunna komma åt din Visual Basic Editor.
Ändra dina Excel-celltextegenskaper med VBA
Definiera ditt kalkylblad
Vi börjar med att definiera ett Excel-kalkylblad som vi kommer att använda som exempel. Använd den gärna för att följa denna handledning.
- Öppna Microsoft Excel och skapa en ny Macro Enabled Excel-arbetsbok ( .xlsm ) med namnet Excel_Macros.xlsm
- Spara ditt kalkylblad på din lokala enhet.
- I arbetsbladet Sheet1 , fortsätt och lägg till tabellen nedan:

- Nu, från bandet, slå Formler .
- Tryck sedan på Definiera namn .
- Definiera ett namngivet intervall som du ska använda din VBA-kod på enligt nedan och tryck på OK .

Använd egenskapen Cell.Font VBA för att ändra teckensnittsfärg och stil
- Flytta till fliken Utvecklare .
- Gå sedan vidare och tryck på Visual Basic - knappen.
- I den vänstra Project Explorer , markera Excel_Macros.xlsm- projektet och tryck sedan på Infoga och välj Modul .
- En ny VBA-modul med namnet Module1 kommer att skapas.
- Fortsätt och klistra in följande kod i den nyskapade modulen:
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
- Tryck på Spara -knappen i din Visual Basic-redigerare.
- Tryck nu på Kör och välj sedan Kör Sub/UserForm (eller tryck helt enkelt på F5).
- Flytta till ditt kalkylblad för Sheet1 och lägg märke till ändringarna. Dina tabellposter tilldelades flera färgkoder i enlighet med deras text (med hjälp av RGB-färgfunktionen), och vi ställde också in texten att vara fetstil och öka dess storlek.

- Om du inte har sparat din kod, tryck på Spara-knappen (eller Ctrl+S), spara sedan även din arbetsbok.
Få åtkomst till ditt VBA-makro
- Observera att din kod alltid är tillgänglig för dig att köra från kommandot Makron som finns på fliken Visa (eller alternativt i Utvecklare | Makron)

Bonus: Cellstil
Excel erbjuder möjligheten att skapa cellstilar. Stilar finns i Home Ribbon > Stilar:

Stilar låter dig spara önskad cellformatering. Tilldela sedan den stilen till en ny cell och all cellformatering tillämpas omedelbart. Inklusive teckenstorlek, cellfärg, cellskyddsstatus och allt annat tillgängligt från cellformateringsmenyn:

Personligen, för många av modellerna som jag arbetar med, skapar jag vanligtvis en "Input"-cellstil:
Range("a1"). Stil = "Input"
Genom att använda stilar kan du också enkelt identifiera celltyper på ditt kalkylblad. Exemplet nedan kommer att gå igenom alla celler i kalkylbladet och ändra valfri cell med Style = "Input" till "InputLocked":
Dim cell som intervall
För varje cell i ActiveSheet.Cells
Om Cell.Style = "Input" sedan Cell.Style = "InputLocked"
Avsluta om
Nästa cell