Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Einlesen von Arbeitsmappen in ein TreeView-Steuerelement

Gruppe

TreeView

Problem

Die geöffneten Arbeitsmappen und deren Arbeitsblätter sollen in ein TreeView-Steuerelement eingelesen werden. Beim Anklicken eines Elementes soll das jeweilige Objekt aktiviert werden.

Lösung
Geben Sie den nachfolgenden Code in das Klassenmodul der UserForm ein.

ClassModule: frmTreeViewSample

Private Sub cmdWeiter_Click()
   Unload Me
End Sub

Private Sub TreeView1_Click()
   With TreeView1.SelectedItem
   If .Children = False Then
      Workbooks(.Parent.Text).Worksheets(.Text).Activate
   Else
      Workbooks(TreeView1.SelectedItem.Text).Activate
   End If
   End With
End Sub

Private Sub UserForm_Initialize()
   Dim wkb As Workbook
   Dim wks As Worksheet
   Dim ndeMain As Node, ndeSecond As Node
   Dim iCounter As Integer
   With TreeView1
      For Each wkb In Workbooks
         iCounter = iCounter + 1
         Set ndeMain = .Nodes.Add(Text:=wkb.Name)
         For Each wks In wkb.Worksheets
            Set ndeSecond = .Nodes.Add(relative:=ndeMain, _
               relationship:=tvwChild, _
               Text:=wks.Name)
               ndeSecond.Sorted = True
         Next wks
      Next wkb
      ndeMain.Expanded = True
      ndeMain.Sorted = True
   End With
End Sub

StandardModule: basMain

Sub CallForm()
   frmTreeViewSample.Show
End Sub