Çok kullanılan LineStyle özelliği düğümler arasında görüntülenen çizgilerin stillerini ayarlamak için kullanılır.
- 0-treelines
1-rootlines
Bu kod' da TreeView nesnesi üzerine kitabımızdaki sayfa adlarını alıyoruz. Alt adlar olarak da sayfalarımızda bulunan formüllü hücreleri ekliyoruz. Sayfalarınızda ne kadar formüllü hücre var ise TreeView ağacımızın sayfa adlarının yazılacağı ana dalların alt dallarına bu hücre adreslerini yazdırıyoruz.
Öncelikle Toolbox üzerine sağ tıklayıp Additional Control seçerek Microsoft TreeView Control ekleyelim.
Bir UserForm ekleyip form üzerine bir adet TreeView nesnesi, bir adet CommandButton, bir adet Label nesnesi çiziniz ve aşağıda yazılı kodları UserForm kod sayfasına geçiniz.
- Kod: Tümünü seç
Private Sub UserForm_Initialize()
TreeView1.LineStyle = 1
Call TreeView_Ornek
End Sub
- Kod: Tümünü seç
Private Sub TreeView_Ornek()
Dim ws As Worksheet
Dim rngFormula As Range
Dim rngFormulas As Range
With Me.TreeView1.Nodes
.Clear
For Each ws In ActiveWorkbook.Worksheets
'Sayfa adları Treeview.e ekleniyor
.Add Key:=ws.Name, Text:=ws.Name
'Formül var mı yok mu denetleyelim
On Error Resume Next
Set rngFormulas = ws.Cells.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0
'Formüllü hücreler Treeview.e ekleniyor
If Not rngFormulas Is Nothing Then
For Each rngFormula In rngFormulas
.Add relative:=ws.Name, _
relationship:=tvwChild, _
Key:=ws.Name & "," & rngFormula.Address, _
Text:="Range " & rngFormula.Address
Next rngFormula
End If
Set rngFormulas = Nothing
Next ws
End With
End Sub
- Kod: Tümünü seç
Private Sub Treeview1_NodeClick(ByVal node As MSComctlLib.node)
Me.Label1.Caption = node.Key
End Sub
- Kod: Tümünü seç
Private Sub CommandButton2_Click()
Dim sNodes() As String
'Treeview.de seçim yapılıp yapılmadığını denetleyelim
If Me.Label1.Caption = vbNullString Then
MsgBox "Seçim yapılmamış!" & vbNewLine & _
"Lütfen önce seçim yapınız.", vbCritical + vbOKOnly, _
"www.ExcelVBA.Net"
Exit Sub
End If
sNodes = Split(Me.Label1, ",")
With Worksheets(sNodes(0))
.Activate
'seçimden sonra seçilen, sayfadan aktif ediliyor
If UBound(sNodes) + 1 > 1 Then
'hücre seçiliyor
.Range(sNodes(1)).Activate
End If
End With
MsgBox Label1.Caption & " formülü seçildi"
End Sub
Saygılarımızla,