Wie wende ich rahmen auf eine zelle an?
Um mit VBA in Excel Rahmen auf eine Zelle anzuwenden, können Sie zwei verschiedene Methoden verwenden. Die erste ist die Eigenschaft „Borders“ und die zweite ist die Methode „BorderAround“. Der einzige Unterschied zwischen diesen beiden Methoden besteht in der Eigenschaft „Ränder“. Sie können den Rand sogar auf eine Seite der Zelle anwenden und der Rand um sie herum gilt vollständig für die Zelle.
In diesem Tutorial werden wir beide Möglichkeiten untersuchen und uns ansehen, welche unterschiedlichen Möglichkeiten es gibt, den Rahmen hinzuzufügen.
VBA-Grenzeigenschaft
- Zuerst müssen Sie mithilfe des Bereichsobjekts den Bereich oder die Zelle angeben, in der Sie den Rahmen anwenden möchten.
- Geben Sie anschließend einen Punkt (.) ein und wählen Sie dann die Eigenschaft „Borders“ aus der Liste der Eigenschaften und Methoden aus.
- Geben Sie dann den Randindex aus den verfügbaren Inhalten an. Hier verwende ich „xlEdgeBottom“, um den Rand nur auf den unteren Rand der Zelle anzuwenden.
- Geben Sie von dort aus den Linienstil mit „LineStyle“ an. Als Linienstil verwende ich „xlContinuonus“.
Sub vba_borders() Range("A1") _ .Borders(xlEdgeBottom) _ .LineStyle = XlLineStyle.xlContinuous End Sub
Wenn Sie nun diesen Code ausführen, wird am unteren Rand der Zelle A1 ein Rahmen hinzugefügt.
Verwendung verschiedener Farben mit Farbindex/Farbe
So wie Sie normalerweise die Rahmenfarbe auswählen, wenn Sie dies manuell tun. In der Eigenschaft „Rahmen“ können Sie über den Farbindex und die Eigenschaft „Farbe“ auch eine andere Farbe als die Standardfarbe verwenden.
Betrachten Sie den folgenden Code.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .Color = RGB(255, 0, 0) End With
Wenn Sie dieses Makro ausführen, wird am unteren Rand der Zelle ein roter Rand hinzugefügt.
Oder wenn Sie die Eigenschaft colorindex verwenden möchten, sieht der Code so aus.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = 7 End With
Verwandt: VBA mit Deklaration
Fügen Sie einen Rahmen innerhalb einer Zelle hinzu
Wenn Sie einen Rahmen innerhalb einer Zelle anwenden möchten, müssen Sie in diesem Fall „xlDiagonalUp“ und „xlDiagonalDown“ als xlBorderIndex verwenden.
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
Wenn Sie den obigen Code ausführen, wird innerhalb der Zelle nach oben und unten ein Rahmen hinzugefügt.
VBA-BorderAround-Methode
In der BorderAround-Eigenschaft von VBA stehen Ihnen fünf optionale Argumente zur Verfügung, es müssen jedoch zwei angegeben werden, um den Rahmen korrekt auf eine Zelle anzuwenden.
Der folgende Code wendet den Rahmen um den Bereich A1:A3 an, wenn Sie das Makro ausführen.
Range("A1:A3").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin
Fügen Sie jeder Zelle im Bereich einen Rahmen hinzu
Der folgende Code durchläuft alle Zellen im Bereich und wendet den Rahmen nacheinander auf jede Zelle an.
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
Wenden Sie einen Rahmen auf alle Zellen mit Text an
Der folgende Code verwendet eine FOR-Schleife, einen USED RANGE, eine IFEMPTY- und eine IF-Anweisung, um Rahmen nur auf die Zellen anzuwenden, in denen Sie einen Wert haben.
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
Ränder entfernen
Verwenden Sie einfach den Linienstil „xlNone“.
Range("A1").Borders(xlDiagonalDown).LineStyle = xlNone
Und wenn Sie den Rahmen von allen Zellen in einem Arbeitsblatt entfernen möchten, in denen Sie einen Wert haben, berücksichtigen Sie den folgenden 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
Verwandte Tutorials
- Fügen Sie eine Zeile mit VBA in Excel ein
- Zellen in Excel mit VBA-Code zusammenführen
- Wählen Sie einen Bereich/eine Zelle mit VBA in Excel aus
- WÄHLEN SIE ALLE Zellen in einem Arbeitsblatt mit VBA aus
- ActiveCell in VBA in Excel