Hoe randen aan een cel toepassen?
Als u randen op een cel wilt toepassen met VBA in Excel, kunt u twee verschillende methoden gebruiken. De eerste is de eigenschap “Borders” en de tweede is de “BorderAround” -methode. Het enige verschil tussen deze twee methoden zit in de eigenschap “Borders”, u kunt de rand zelfs op één zijde van de cel toepassen en de rand eromheen is volledig op de cel van toepassing.
In deze tutorial zullen we beide manieren verkennen en bekijken wat de verschillende manieren zijn om de rand toe te voegen.
VBA-grenseigenschap
- Eerst moet u het bereik of de cel opgeven waarop u de rand wilt toepassen met behulp van het bereikobject.
- Typ daarna een punt (.) en selecteer vervolgens de eigenschap “Borders” uit de lijst met eigenschappen en methoden.
- Specificeer vervolgens de grensindex uit de beschikbare inhoud. Hier gebruik ik “xlEdgeBottom” om de rand alleen op de onderkant van de cel toe te passen.
- Geef vanaf daar de lijnstijl op met behulp van “LineStyle”. Ik gebruik “xlContinuonus” als lijnstijl.
Sub vba_borders() Range("A1") _ .Borders(xlEdgeBottom) _ .LineStyle = XlLineStyle.xlContinuous End Sub
Wanneer u deze code nu uitvoert, wordt er een rand toegevoegd aan de onderkant van cel A1.
Verschillende kleuren gebruiken met kleurindex/kleur
Net zoals je normaal gesproken de randkleur kiest als je dit handmatig doet. In de border-eigenschap kunt u ook de kleurindex en de kleur-eigenschap gebruiken om een andere kleur dan de standaardkleur te gebruiken.
Beschouw de onderstaande code.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .Color = RGB(255, 0, 0) End With
Wanneer u deze macro uitvoert, wordt er een rode rand aan de onderkant van de cel toegevoegd.
Of als u de eigenschap colorindex wilt gebruiken, zou de code er als volgt uitzien.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = 7 End With
Gerelateerd: VBA met verklaring
Voeg een rand toe binnen een cel
Als u een rand binnen een cel wilt toepassen, moet u in dit geval “xlDiagonalUp” en “xlDiagonalDown” gebruiken als xlBorderIndex.
With Range("A1").Borders(xlDiagonalUp) .LineStyle = XlLineStyle.xlDashDotDot .Color = RGB(255, 0, 0) End With With Range("A1").Borders(xlDiagonalDown) .LineStyle = XlLineStyle.xlDashDotDot .Color = RGB(255, 0, 0) End With
Wanneer u de bovenstaande code uitvoert, wordt er een rand op en neer in de cel toegevoegd.
VBA BorderAround-methode
In de eigenschap BorderAround van VBA hebt u vijf optionele argumenten, maar er moeten er twee worden opgegeven om de rand correct op een cel toe te passen.
Met de volgende code wordt de rand rond het bereik A1:A3 toegepast wanneer u de macro uitvoert.
Range("A1:A3").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin
Voeg een rand toe aan elke cel in het bereik
De volgende code loopt door alle cellen in het bereik en past de rand één voor één toe op elke cel.
Sub vba_borders() Dim iRange As Range Dim iCells As Range Set iRange = Range("A1:A10") For Each iCells In iRange iCells.BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin Next iCells End Sub
Rand toepassen op alle cellen met tekst
De volgende code gebruikt FOR LOOP, USED RANGE, IFEMPTY en IF STATEMENT om alleen randen toe te passen op de cellen waarin u een waarde hebt.
Dim iRange As Range Dim iCells As Range Set iRange = ThisWorkbook.ActiveSheet.UsedRange For Each iCells In iRange If Not IsEmpty(iCells) Then iCells.BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin End If Next iCells
Randen verwijderen
Gebruik gewoon de lijnstijl “xlNone”.
Range("A1").Borders(xlDiagonalDown).LineStyle = xlNone
En als u de rand wilt verwijderen van alle cellen in een werkblad waar u een waarde hebt, overweeg dan de volgende code.
Dim iRange As Range Dim iCells As Range Set iRange = ThisWorkbook.ActiveSheet.UsedRange For Each iCells In iRange If Not IsEmpty(iCells) Then iCells.Borders(xlDiagonalDown).LineStyle = xlNone End If Next iCells
Gerelateerde tutorials
- Voeg een rij in met VBA in Excel
- Voeg cellen in Excel samen met VBA-code
- Selecteer een bereik/cel met VBA in Excel
- SELECTEER ALLE cellen in een werkblad met VBA
- ActiveCell in VBA in Excel