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

  1. Eerst moet u het bereik of de cel opgeven waarop u de rand wilt toepassen met behulp van het bereikobject.
    specify the range or cell
  2. Typ daarna een punt (.) en selecteer vervolgens de eigenschap “Borders” uit de lijst met eigenschappen en methoden.
    type a dot and then select the border
  3. 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.
    specify the border index
  4. Geef vanaf daar de lijnstijl op met behulp van “LineStyle”. Ik gebruik “xlContinuonus” als lijnstijl.
    specify th line style
 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.

Hierdoor wordt onderaan een rand toegevoegd

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.

gebruik van verschillende kleuren met kleurindex

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
kleurindex-eigenschap

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
voeg een rand toe binnen een cel

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.

vba borderaround-methode

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
Geef op of u de rand op de juiste manier op een cel wilt toepassen

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
Voeg een rand toe aan elke cel in het bereik

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

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *