Hücreye kenarlıklar nasıl uygulanır?
Excel’de VBA kullanarak bir hücreye kenarlık uygulamak için iki farklı yöntem kullanabilirsiniz. Birincisi “Borders” özelliği, ikincisi ise “BorderAround” yöntemidir. Bu iki yöntem arasındaki tek fark “Borders” özelliğinde, hatta hücrenin bir tarafına kenarlık uygulayabiliyorsunuz ve etrafındaki kenarlık da tamamen hücreye uygulanıyor.
Bu derste her iki yolu da keşfedeceğiz ve kenarlık eklemenin farklı yollarının neler olduğuna bakacağız.
VBA sınır özelliği
- Öncelikle aralık nesnesini kullanarak kenarlığı uygulamak istediğiniz aralığı veya hücreyi belirtmeniz gerekir.
- Bundan sonra bir nokta (.) yazın ve ardından özellikler ve yöntemler listesinden “Kenarlıklar” özelliğini seçin.
- Daha sonra mevcut içeriklerden kenarlık indeksini belirtin. Burada kenarlığı yalnızca hücrenin altına uygulamak için “xlEdgeBottom” kullanıyorum.
- Oradan “LineStyle”ı kullanarak çizgi stilini belirtin. Çizgi stili olarak “xlContinuonus” kullanıyorum.
Sub vba_borders() Range("A1") _ .Borders(xlEdgeBottom) _ .LineStyle = XlLineStyle.xlContinuous End Sub
Şimdi bu kodu çalıştırdığınızda A1 hücresinin altına bir kenarlık ekleyecektir.
Renk Dizini/Renk ile farklı renkler kullanma
Tıpkı normalde manuel olarak yaptığınızda kenarlık rengini seçtiğiniz gibi. Border özelliğinde, varsayılan renk dışında bir renk kullanmak için renk indeksini ve color özelliğini de kullanabilirsiniz.
Aşağıdaki kodu göz önünde bulundurun.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .Color = RGB(255, 0, 0) End With
Bu makroyu çalıştırdığınızda hücrenin altına kırmızı renkte bir kenarlık eklenir.
Veya colorindex özelliğini kullanmak isterseniz kod şu şekilde olacaktır.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = 7 End With
İlgili: Beyanname ile VBA
Hücrenin içine kenarlık ekleme
Hücre içine kenarlık uygulamak istiyorsanız bu durumda xlBorderIndex olarak “xlDiagonalUp” ve “xlDiagonalDown” kullanmanız gerekir.
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
Yukarıdaki kodu çalıştırdığınızda hücrenin içine yukarı ve aşağı bir kenarlık ekler.
VBA BorderAround yöntemi
VBA’nın BorderAround özelliğinde isteğe bağlı 5 bağımsız değişkeniniz vardır, ancak sınırın hücreye doğru şekilde uygulanması için ikisinin belirtilmesi gerekir.
Aşağıdaki kod, makroyu çalıştırdığınızda A1:A3 aralığının çevresine kenarlık uygular.
Range("A1:A3").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin
Aralıktaki her hücreye kenarlık ekleme
Aşağıdaki kod aralıktaki tüm hücreler arasında döngü yapar ve kenarlığı her hücreye birer birer uygular.
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
Metin içeren tüm hücrelere kenarlık uygula
Aşağıdaki kod, yalnızca bir değere sahip olduğunuz hücrelere kenarlık uygulamak için FOR LOOP, USED RANGE, IFEMPTY ve IF STATEMENT kullanır.
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
Kenarlıkları kaldır
Sadece “xlNone” çizgi stilini kullanın.
Range("A1").Borders(xlDiagonalDown).LineStyle = xlNone
Çalışma sayfasında bir değere sahip olduğunuz tüm hücrelerin kenarlığını kaldırmak istiyorsanız aşağıdaki kodu göz önünde bulundurun.
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
İlgili eğitimler
- Excel’de VBA kullanarak satır ekleme
- VBA kodunu kullanarak Excel’deki hücreleri birleştirme
- Excel’de VBA’yı kullanarak bir aralık/hücre seçin
- VBA kullanarak bir çalışma sayfasındaki TÜM hücreleri SEÇİN
- Excel’de VBA’da ActiveCell