Excelguru Hilfe Site - Mit einem Strukturansicht-Steuerelement

Dies ist ein Tutorial über die Schaffung einer einfachen Steuerung von Treeview auf einer Excel-Userform. Für die Zwecke dieses Beispiels werden wir das Treeview-Steuerelement mit Arbeitsblatt-Namen und die Adressen der Zellen mit Formeln in ihnen werden bevölkern.







Für einfache Bedienung, habe ich alle Standardobjektnamen nur verwendet, die ich für den Artikel erstellt, aber ich fühle mich frei, um sie in Ihrer eigenen Instanz zu umbenennen. Denken Sie daran, die Codebeispiele zu aktualisieren, um die Namen der Steuerelemente zu berücksichtigen, dass Sie dies tun für.

Erstellen der darunter liegende Struktur:
Um bei dem Beispiel:
  • Erstellen Sie eine frische neue Arbeitsmappe
  • Fügen Sie ein paar Formeln zu Arbeitsblatt 1 und 2. (Es spielt keine Rolle, was sie sind, nur etwas, das ist eine Formel)
  • Geben Sie den VBE
  • Fügen Sie eine neue Userform in Ihre Arbeitsmappe (wir kommen wieder dazu)
  • Fügen Sie ein neues leeres Code-Modul, und fügen Sie den folgenden Code in dem (die verwendet wird, um die Userform zu starten):

Das Endergebnis:
Speichern Sie das Projekt und gehen zurück in die Excel-Schnittstelle. Drücken Sie Alt + F8 und führen Sie das „ufLaunch“ Makro, um die Userform anzuzeigen. Solange Sie einige Formeln in Ihren Arbeitsblättern setzen, sollten diese Blätter haben ein kleines Pluszeichen neben ihnen, so klicken sie zu erweitern. Klicken Sie auf den Notennamen oder die Bereichsnamen und das Etikett in der linken unteren Ecke der Userform-Show zu sehen, welche Knoten, den Sie ausgewählt haben. Ein Screenshot der fertigen Form ist unten dargestellt:

Excelguru Hilfe Site - Mit einem Strukturansicht-Steuerelement

Der Code erklärt:
Die Userform nutzt vier Routinen, die aufgeschlüsselt wie folgt:

Private Sub UserForm_Initialize ()
Der Zweck dieser Routine ist, die gewünschten Standardwerte auf dem Benutzerformular zu setzen, wenn er geladen wird. Während ich normalerweise die Standardwerte meiner Kontrollen in der Entwurfsansicht einstellen würde, entschied ich mich für diesen Weg zu gehen, einer Erklärung nur mit dem Drag & Drop von Standardsteuerungen zu ermöglichen. Diese Routine setzt jede Kontrolle Standardwert, ruft dann die Routine Treeview_Populate TreeView-Steuerelement zu füllen.

Zwar gibt es nicht viel Geheimnis in der oben ist, gibt es in dieser Routine nichts wert eine Zeile, und das ist derjenige, der die Treeview der Linestyle-Eigenschaft auf ‚tvwRootLines‘ setzt. Diese Eigenschaft ist standardmäßig auf ‚tvwTreeLines‘ gesetzt sein, wenn Sie das Steuerelement auf der Userform fallen. In diesem Zustand, wir bekommen aber nicht die +/- Indikatoren, was bedeutet, dass Sie einen Knoten zu verdoppeln haben klicken, um es zu erweitern oder verkleinern zu bekommen. Ich persönlich finde die +/- Ansicht viel intuitiver, da der Benutzer nicht verdoppeln, muss der Knoten klicken zu wissen, ob es etwas drin ist. (Sie können immer noch einen Doppelklick auf, um den Knoten zu erweitern oder zu reduzieren, wenn sie wollen though.)







Private Sub TreeView_Populate ()
Diese Routine füllt tatsächlich alle Knoten des Treeview; in diesem Fall mit dem Namen jedes Arbeitsblatt in der Arbeitsmappe und die Bereiche, die eine Formel enthalten.
Die Rodung der Steuer- und Durchschleifen Tabellenblätter und Bereiche sollte selbsterklärend sein, so will ich sie nicht im Detail erforschen, aber ich möchte auf der Methode suchen Treeview Knoten hinzuzufügen.

Wenn Knoten der Strukturansicht hinzufügen, müssen wir eine Eltern / Kind-Beziehung erstellen. In diesem Szenario ist jedes Blatt ein Elternteil, und die Bereiche sind die Kinder, die von den Eltern hervorgebracht werden. (Sie könnte nehmen dies zu einer weiteren Ebene, indem die eigentlichen Formel, Wert und Schriftarten Kinder der Bereiche als auch, wenn Sie gewählt haben. In diesem Fall ist der Bereich das Kind des Blattes sein würde, aber die Eltern der anderen Daten darunter.)

Um einen Top-Level-Eltern-Knoten hinzuzufügen, müssen wir sowohl einen Schlüssel und etwas Text zu dem Knoten zuweisen. Der Schlüssel muss eindeutig sein, und der Text ist, was auf der Userform in der Strukturansicht erscheint. In dem obigen Beispiel sind die Arbeitsblatt zur Baum-Ansicht hinzugefügt, um den folgenden Code:

das heißt Me.TreeView1.Nodes.Add Key: = "Sheet1", Text: = "Sheet1"

Jedes Mal, wenn ein Top-Level-Knoten auf dem Benutzerformular (Tabelle1, Tabelle2 und Tabelle3 im Beispiel) hinzufügen möchten, würden Sie über die Codierung Konstrukt verwenden.
So fügen Sie untergeordneten Knoten, ist das Verfahren etwas anders. Wir verwenden immer noch die Add-Methode, und wir brauchen noch einen eindeutigen Schlüssel, aber wir haben auch den Schlüssel des übergeordneten Knoten (relativ) und die Beziehung (tvwChild) zur Verfügung zu stellen. In dem Beispiel hinzuzufügen, der Code die Kinder Knoten (für Zeilenumbrüche bearbeitet) sieht wie folgt aus:

das heißt Me.TreeView1.Nodes.Add relativ: = "Sheet1", Beziehung: = tvwChild Key: = "Sheet1 $ C $ 8", Text: = "Rage $ C $ 8"

So das Kind Knoten unter dem übergeordneten Knoten zu verbinden, die ‚relativer‘ muss gleich den ‚Schlüssel‘ des übergeordneten Knoten gesetzt werden, und die Beziehung muss auf ‚tvwchild‘ gesetzt werden. Um die untergeordneten Knoten gültig zu machen, muss es auch einen eigenen Schlüssel ist es, die von jedem anderen in der Baumansicht (nicht nur die anderen Kinder) einzigartig ist. Was ich hier tat, war eine Verbindung Schlüssel einrichten, die sich aus der übergeordneten Schlüssel und dem Strombereich, durch ein Komma getrennt hergestellt wird. Warum? In einem Projekt baute ich mit drei Eltern / Kind-Schichten (Blatt, Reichweite, Data), war ich leicht in der Lage, es zu spalten und sieht, tun, was ich wollte. Zum Beispiel, wenn ich den gewählten Bereich aktivieren wollte, spaltete ich den Inhalt in ein Array Etikett, verwenden Sie die einzelnen Komponenten des Bereichs i aktiviert werden soll. Ein Beispiel hierfür ist in den Zusatzinformationen Abschnitt am Ende des Artikels gezeigt.

Private Sub CommandButton1_Click ()
Dieser Befehl Schaltfläche leert einfach das Benutzerformular.

Schlussfolgerung:
Einmal verstanden, ist die Steuerung von Treeview eigentlich ganz einfach einzurichten und zu verwenden. Während dieses Beispiel zur Verwendung des TreeView-Steuerelement in einer Excel-Userform fokussiert hat, könnte es genauso gut in einem Access, Word oder Powerpoint-Lösung, oder jede andere Anwendung angewandt werden, die die Verwendung von VBA unterstützt. (In der Tat kann diese Kontrolle tatsächlich aus anderen Sprachen als auch zugegriffen werden.)

Zusatzinformationen
Hinzufügen von Bildern zu dem Treeview:
Das TreeView-Steuerelement ist in sehr vielen Orten in Microsoft Windows, und oft hat Bilder mit daran gewöhnt. Nur ein Beispiel hierfür ist die Erfassung unten aus dem Windows-Explorer:

Excelguru Hilfe Site - Mit einem Strukturansicht-Steuerelement

Wie das Bild oben können Sie Bilder auf Ihr TreeView-Steuerelement hinzufügen, und mein Freund Colo hat eine gute Seite auf, dass //puremis.net/excel/code/080.shtml"]here tun.

Mit Hilfe der Treeview Form auf den ausgewählten Bereich gehen:
Die folgende Routine würde zusätzliche Funktionalität zu unserem Beispiel hinzufügen, durch den Benutzer auf das ausgewählte Arbeitsblatt oder Bereich nehmen. Es geht auch in der Userform Modul unseres Beispiels, aber Sie müssen eine neue Schaltfläche hinzufügen, um es auszulösen:

Syndication:
Dieser Artikel wird auch auf der Professional Office-Developers Association (nicht mehr online) veröffentlicht.

Wenn Sie bereits ein Konto haben, und haben gerade nicht eingeloggt, was warten Sie noch? Jetzt einloggen!







In Verbindung stehende Artikel