Das Erstellen einer dynamischen Liste oder einer Liste in einem benutzerdefinierten Dialogfeld, Änderungen von einigem Steuerelement abhingen, das in dem Dialogfeld wie einer Schaltfläche ausgewählt wird, ist in Microsoft Excel möglich. Das folgende Beispiel zeigt, wie Sie die Liste ändern kann können, die in einem benutzerdefinierten Dialogfeld angezeigt wird, während das Dialogfeld weiterhin angezeigt wird.
Ohne Garantie, ist ausgedrückt, oder die impliziert wird, bietet Microsoft Programmierbeispiele nur für Abbildung. Das enthält aber ist auf den konkludenten Garantien von Merchantability oder Eignung für einen bestimmten Zweck nicht beschränkt. In diesem Artikel wird vorausgesetzt, dass von Ihnen mit der Programmiersprache, die demonstriert wird, und den Tools vertraut, die zu dem Erstellen und dem Debuggen von Prozeduren verwandt werden ist. Technischen Support von Microsoft helfen, die Funktionalität von einem bestimmten Verfahren zu erläutern, aber sie diese Beispiele zu nicht ändern, um bereitzustellen, dass Funktion hinzufügte, oder Prozeduren zu erstellen, um Ihre bestimmten Anforderungen zu erfüllen. In diesem Beispiel zeigt das Dialogfeld, das Sie erstellen, eine leere Liste (Steuerung von List-Feld) an Sie führen wann zuerst das Dialogfeld aus. Wenn Sie auf die Schaltfläche unter List One klicken, wird in dem Dialogfeld eine Liste von Obst verschiedener Arten angezeigt. Wenn Sie die List Two Schaltfläche auswählen, wird in dem Dialogfeld eine List von Farben angezeigt.
So erstellen Sie das benutzerdefinierte Dialogfeld
Wählen Sie in dem Menü Einfügen Makro aus, und wählen Sie dann Dialog, um ein neues Dialogblatt zu Ihrer Arbeitsmappe hinzuzufügen.
Verwenden Sie die Formularsymbolleiste, um Ihrem Dialogfeld ein List-Feld und zwei Schaltflächen hinzuzufügen.
Geben Sie den Text ein, der auf den benutzerdefinierten Schaltflächen Ihnen z. B angezeigt werden soll List
One Und List Two.
Wählen Sie das List-Feld aus. Geben Sie das Sie im Feld Namens ein ListDrücken Sie dann die EINGABETASTE
Wählen Sie eine der benutzerdefinierten Schaltflächen (nicht OK oder Abbrechen) aus, und wählen Sie in dem Menü Format Objekt. Wählen Sie in dem Dialogfeld Objekt formatieren das Register Steuerelement Auswählen des Dismiss-Kontrolle-Kästchens aus, und wählen Sie dann OK aus.
Wiederholen Sie Schritt 4 mit der zweiten benutzerdefinierten Schaltfläche.
Geben Sie in einem Arbeitsblatt der Arbeitsmappe die zwei anderen Listen ein, die in dem Dialogfeld wiedergegeben werden sollen. Geben Sie in dem Sheet1 zum Beispiel folgende ein:
A1: Apple B1: Red
A2: Orange B2: White
A3: Banana B3: Blue
A4: Pear B4: Green
A5: Grapes B5: Yellow
Um das Dialogfeld auszuführen, erstellen Sie eine Prozedur so
Fügen Sie ein neues Modul-Blatt in Ihrer Arbeitsmappe ein, indem Makro in dem Menü Einfügen auswählt und Modul dann wählt.
Geben Sie in dem neuen Modul folgend ein:
' Dimension variables.
Dim chosen As Integer, selected As Integer, MyList As Object
Dim ListOneRange As String, ListTwoRange As String
Sub Main()
' Set value of variable 'chosen' to 1.
chosen = 1
' Assign value of variable 'MyList' to listbox in dialog box.
Set MyList = Application.DialogSheets("Dialog1").ListBoxes("List")
' Define variable 'ListOneRange' as the cell range
' that contains your first list on the worksheet.
ListOneRange = "Sheet1!$A$1:$A$5"
' Define variable 'ListTwoRange' as the cell range
' that contains your second list on the worksheet.
ListTwoRange = "Sheet1!$B$1:$B$5"
' Initialize the list displayed in dialog box to be empty.
MyList.ListFillRange = ""
' Loop to display the dialog box.
' Loop displays the dialog box until it is canceled.
While chosen > 0
show:
' Display the dialog box.
DialogSheets("Dialog1").show
' If the value of 'chosen' is 1, the List One button was
' chosen.
If chosen = 1 Then
' Set range to first list on worksheet
' and display dialog box again.
MyList.ListFillRange = ListOneRange
GoTo show
' If the value of 'chosen' is 2, the List One button was
' chosen.
ElseIf chosen = 2 Then
' Set range to second list on worksheet
' and display dialog box again.
MyList.ListFillRange = ListTwoRange
GoTo show
End If
' Repeat loop.
Wend
End Sub
Sub OptionOne_Click()
' Set value of variable 'chosen' to 1.
chosen = 1
End Sub
Sub OptionTwo_Click()
' Set value of variable 'chosen' to 2.
chosen = 2
End Sub
Sub CancelChosen()
' Set value of variable 'chosen' to 0.
chosen = 0
End Sub
Sub OKChosen()
' OK button was chosen.
' Set value of variable 'selected' to number
' corresponding to the item selected in the list.
selected = MyList.ListIndex
If selected = 0 Then
' Alert if no item is selected.
MsgBox "nothing selected"
Else
' Display selected item in message box.
MsgBox MyList.List(selected)
End If
End Sub
Wählen Sie die Dialogblattregisterkarte aus. Klicken Sie in dem Dialograhmen auf den OK, und wählen Sie in dem Menü Extra Makro Assign aus. Wählen Sie aus der Macro Name/Reference-Liste OKChosen aus, und klicken Sie auf OK.
Wählen Sie das Schaltfläche Abbrechen aus, und wählen Sie in dem Menü Extra Makro Assign aus. Wählen Sie aus der Macro Name/Reference-Liste CancelChosen aus, und klicken Sie auf OK.
Wählen Sie die erste benutzerdefinierte Schaltfläche (List One in diesem Beispiel) aus, und wählen Sie in dem Menü Extra Makro Assign aus. Wählen Sie aus der Macro Name/Reference-Liste OptionOne_Click aus, und klicken Sie auf OK.
Wählen Sie die zweite benutzerdefinierte Schaltfläche (List Two in diesem Beispiel) aus, und wählen Sie in dem Menü Extra Makro Assign aus. Wählen Sie aus der Macro Name/Reference-Liste OptionTwo_Click aus, und klicken Sie auf OK.
Klicken Sie in dem Menü Extra auf Makro, um das Dialogfeld anzuzeigen. Wählen Sie aus der Macro Name/Reference-Liste Main aus, und wählen Sie aus, Ausführen.
Wenn Sie in dem Dialogfeld die ersten Liste auf die Schaltfläche unter List One klicken, wird die Liste von Obst angezeigt. Dass Sie List Two Schaltfläche, die zweite Liste, die Liste der Farben auswählen wird angezeigt. Wenn Sie OK auswählen, wird mit dem Element, das Sie in der Liste auswählten, ein Dialogfeld angezeigt. Klicken Sie auf Abbrechen, um das benutzerdefinierte Dialogfeld zu schließen.
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 129072
(http://support.microsoft.com/kb/129072/en-us/
)
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.