Limitationen von UserForms und Controls
Allgemeines
über Limitationen von UserForms und Controls
Übersicht der
Limitationen von UserForms und Controls
Limitation
"Maximale Anzahl Steuerelemente auf einem Visual Basic-Formular"
Limitationen
von VB-Steuerelementen
Limitationen
von VBA-Steuerelementen
Limitationen
der Textbox und des Textfeldes in Microsoft Excel
Allgemeines über Limitationen von UserForms und Controls
Auf dieser Seite werden die wichtigsten Limitationen und Spezifikationen von Benutzerformularen (UserForms) und Steuerelementen (Controls) in Visual Basic- und Visual Basic für Applikationen-Projekten (VBA-Projekten) vorgestellt.
Bitte beachten Sie, dass sich die Spezifikationen für VB und VBA praktisch in allen Merkmalen unterscheiden. Insgesamt betrachtet sind die Steuerelemente von VBA-Benutzerformularen um einiges leistungsfähiger als die Visual Basic-Steuerelemente. Zum Beispiel kann eine VB-Textbox "nur" etwa 64 KB Text aufnehmen (ca. 65'536 Zeichen). Der Inhalt einer Textbox auf einem VBA-Benutzerformular dagegen kann ohne weiteres über 1'000'000 Zeichen (1 Million!) lang sein, was ungefähr dem Fünfzehnfachen einer VB-Textbox entspricht.
Hier finden Sie weitere verwandte Limitationen:
Weitere Informationen Alle
Limitationen in Excel-VBA und im Excel-Objektmodell finden Sie hier: Alle
Limitationen im VBA-Editor von Microsoft Excel finden Sie hier: Alle
Limitationen in VBA und VB werden hier vorgestellt: Die
Limitationen in der Visual Basic Entwicklungsumgebung und VB-Projekten finden Sie hier: |
Beachten Sie auch die Informationen auf dieser Seite:
Weitere Informationen |
Übersicht der Limitationen von UserForms und Controls
Benutzerformular-Limitationen (UserForms)
Die maximale Anzahl Benutzerformulare in einem VBA-Projekt ist noch nicht vollständig bekannt. In mehreren Tests konnten problemlos 150 UserForms einem VBA-Projekt hinzugefügt werden. Vermutlich gibt es keine fixe Grenze. Das würde somit bedeuten, dass die maximale Anzahl nur von den verfügbaren Systemressourcen abhängig ist.
Das Öffnen einer Arbeitsmappe mit 150 Benutzerformularen dauert nur kurz (ca. 2 Sekunden). Das Speichern der Mappe hingegen dauert sehr lange (ca. 1 Minute).
Steuerelement-Limitationen (Controls)
In Visual Basic benutzen alle nicht-grafischen Steuerelemente (d.h. alle Steuerelemente ausser Shape, Line, Image und Label) ein so genanntes Fenster (Window). Jedes Fenster benötigt Systemressourcen, die ihrerseits die Limitation der maximalen Anzahl gleichzeitig existierender Fenster bestimmt. Die exakte Grenze ist abhängig von den verfügbaren Systemressourcen und dem jeweiligen Typ des verwendeten Controls.
Weitere Informationen über Systemressourcen erhalten Sie hier:
Weitere Informationen |
Maximale Anzahl Steuerelemente auf einem VB-Formular
Die folgenden Limitationen gelten für Formulare (Forms) in VB-Projekten (VB 4.0 32-bit, VB 5.0 und VB 6.0).
Anzahl Steuerelemente
Die exakte maximale Anzahl Steuerelemente auf einem Visual Basic-Formular ist vom
jeweiligen Typ der verwendeten Steuerelemente abhängig. Es gibt jedoch es eine feste
Limitation von maximal 254 Steuerelement-Namen pro Formular. Wenn jedes Steuerelement
einen eindeutigen Namen besitzt, können somit bis zu 254 Steuerelemente auf einem
Formular angeordnet werden. Beim Hinzufügen des 255. Steuerelementes zeigt Visual Basic
die nachfolgend abgebildete Warnmeldung:

Abbildung: Warnmeldung "Reached limit: cannot create any
more controls for this form"
Anmerkung des Autors:
Die obige Meldung erscheint immer exakt beim 255-sten Steuerelement.
| Beachten Sie bitte, dass auch Menüelemente als Steuerelemente gezählt werden. Beispielsweise benötigt ein Menü "Datei" mit den vier Menübefehlen "Öffnen", "Speichern", "Schliessen" und "Beenden" insgesamt 5 Control-Namen. Auf dem Formular könnten somit nur noch 249 Steuerelemente angeordnet werden (254 - 5 = 249). |

Abbildung: Warnmeldung "Menu control array element must
have an index"
Begin VB.Menu mnuTools
Caption = "&Tools"
Begin VB.Menu mnuToolItems
Caption = "Tool 1"
Index = 1
End
Begin VB.Menu mnuToolItems
Caption = "Tool 2"
Index = 2
End
Begin VB.Menu mnuToolItems
Caption = "Tool 3"
Index = 3
End
End
Die so genannte WindowList ist von dieser Limitation nicht betroffen.

Abbildung: WindowList/Fensterliste
Wenn man auf Basis eines Steuerelementes ein Control Array (Steuerelemente-Feld) erstellt, so können mehr als 254 Steuerelemente auf einem Formular verwendet werden. Beim Kopieren und Einfügen eines Steuerelementes blendet Visual Basic die Rückfragemeldung "You already have a control named '<controlname>'. Do you want to create a control array?" ein. In einem Control Array besitzt jedes Steuerelement einen eindeutigen Index, über den es angesprochen wird. Da alle Steuerelemente eines Control Arrays den gleichen Namen besitzen, benötigt VB nur einen einzigen Control-Namen. Somit sind weit mehr als 254 Steuerelemente möglich. Theoretisch kann man 254 Control-Arrays à 32'768 Controls erstellen (siehe auch weiter unten). Das würde eine unvorstellbare Anzahl von 8'323'072 Steuerelementen auf einem Formular ergeben.
Anzahl verschachtelte Steuerelemente
Wenn Sie Steuerelemente ineinander verschachteln, beispielsweise ein
Rahmen-Steuerelement (Frame) in ein anderes Rahmen-Steuerelement einfügen, so können Sie
bis zu 25 Verschachtelungsebenen verwenden. Visual Basic akzeptiert nicht mehr als 25
Ebenen.
Anzahl Steuerelemente in einem Steuerelement-Array
Die Grenze von Steuerelement-Arrays liegt bei maximal 32'768 Elementen (Index 0 bis
32'767) für alle Visual Basic-Versionen (siehe auch weiter oben).
Maximale Anzahl Steuerelemente auf einem VBA-Benutzerformular
Die folgenden Limitationen gelten für Benutzerformulare (UserForms) in VBA-Projekten (VBA ab Version 5.0, d.h. ab Microsoft Office 97).
Anzahl Steuerelemente
Die maximale Anzahl Steuerelemente auf einem Visual Basic für
Applikationen-Benutzerformular ist nicht durch eine fixe Grenze bestimmt. In einem Test
konnte ein Benutzerformular mit 600 Steuerelementen erstellt werden.
| Beachten Sie unbedingt, dass, obwohl praktisch unbegrenzt viele Steuerelemente auf einem Benutzerformular angeordnet werden können, nur die ersten 411 Steuerelemente, die hinzugefügt wurden, mit VBA-Code direkt angesprochen werden können. Wird im Code ein Steuerelement direkt referenziert, welches nach dem 411. Steuerelement hinzugefügt wurde, so stürzt Microsoft Excel sofort ab. Nebst Excel sind auch Word und PowerPoint verschiedener Office-Versionen betroffen. |
Ausführliche Informationen über dieses Problem sowie mehrere Umgehungslösungen erhalten Sie unter Limitationen im VBA-Editor: Maximale Anzahl Steuerelemente.
Anzahl verschachtelte Steuerelemente
Wenn Sie Steuerelemente ineinander verschachteln, beispielsweise ein
Rahmen-Steuerelement (Frame) in ein anderes Rahmen-Steuerelement einfügen, so können Sie
im Gegensatz zu Visual Basic auch mehr als 25 Verschachtelungsebenen verwenden. Ob es eine
fixe Grenze gibt, ist zur Zeit noch unklar. In einem Test konnten problemlos 35 ineinander
verschachtelte Rahmen-Steuerelemente erstellt werden.
Anzahl Steuerelemente in einem Steuerelement-Array
VBA-Benutzerformulare können grundsätzlich keine Steuerelement-Arrays enthalten.
Demzufolge gibt es keine Limitation in Form einer maximalen Anzahl.
Limitationen von VB-Steuerelementen
Die folgende Tabelle zeigt die wichtigsten Spezifikationen von Visual Basic-Controls.
| Eigenschaft | Steuerelement | Spezifikation |
| List und ListCount | ListBox- und ComboBox-Control | Maximum number of items is 32K; the limit on the size of each item is 1K (1'024 bytes) |
| Text | TextBox-Control | Limited to 64K |
| Caption | Label-Control | Limited to 1'024 bytes |
| Caption | CommandButton-, CheckBox-, Frame- und OptionButton-Control | Limited to 255 characters Any caption over these limits is truncated. Captions on custom control properties are limited to 32K. |
| Caption | Menu-Control | Limited to 235 characters |
| Tag | Alle Controls | Limited only by available memory |
| Name | Alle Controls | Limited to 40 characters |
Hinweis
In Visual Basic sind die Namen von Steuerelement-Eigenschaften auf 30 Zeichen limitiert.
Limitationen von VBA-Steuerelementen
Diese Tabelle enthält die wichtigsten Spezifikationen von Visual Basic für Applikationen-Steuerelemente (MS Forms-Controls). Die Angaben beziehen sich auf Steuerelemente von Benutzerformularen. Sie gelten nicht für Steuerelemente, die in einem Dokument wie beispielsweise einem Excel-Arbeitsblatt oder Word-Dokument eingebettet werden können.
| Steuerelement | Merkmal / Limitation | Spezifikation |
| TextBox | Maximale Länge des Textes in einem Textfeld (Text-Eigenschaft) | Mindestens 1'000'000 Zeichen (siehe auch hier) |
| Label | Maximale Länge der Beschriftung eines Bezeichnungsfeldes (Caption-Eigenschaft) | Mindestens 300'000 Zeichen |
| CommandButton | Maximale Länge der Beschriftung einer Befehlsschaltfläche (Caption-Eigenschaft) | Mindestens 300'000 Zeichen |
| CheckBox | Maximale Länge der Beschriftung eines Kontrollkästchens (Caption-Eigenschaft) | Unbekannt |
| Frame | Maximale Länge der Beschriftung eines Rahmens (Caption-Eigenschaft) | Unbekannt |
| OptionButton | Maximale Länge der Beschriftung eines Optionsfeldes (Caption-Eigenschaft) | Unbekannt |
| MultiPage | Maximale Anzahl Seiten eines Multiseiten-Steuerelementes (Pages) | Mindestens 100 Seiten |
| ListBox | Maximale Anzahl Elemente in einem Listenfeld (ListCount) | Unbekannt |
| ListBox | Maximale Länge eines Elementes in einem Listenfeld (List) | Unbekannt |
| ComboBox | Maximale Anzahl Elemente in einem Kombinationsfeld (ListCount) | Unbekannt |
| ComboBox | Maximale Länge eines Elementes in einem Kombinationsfeld (List) | Unbekannt |
| Menu | Maximale Länge der Beschriftung eines Menü-Elementes (Caption-Eigenschaft) | 255 Zeichen |
| Menu | Maximale Länge der Zusatzinformationen eines Menü-Elementes (Tag-Eigenschaft) | 255 Zeichen |
| Alle Controls | Maximale Länge des Namens eines Steuerelementes (Name-Eigenschaft) | 128 Zeichen |
| Alle Controls | Maximale Länge der QuickInfo eines Steuerelementes (ControlTipText-Eigenschaft) | Mindestens 630'000 Zeichen (siehe auch hier) |
| Alle Controls | Maximale Länge der Zusatzinformationen eines Steuerelementes (Tag-Eigenschaft) | Mindestens 300'000 Zeichen (siehe auch hier) |
Limitationen der Textbox und des Textfeldes in Microsoft Excel
Textfeld (Symbolleiste "Zeichnen")
» Das Textfeld in Microsoft Excel kann maximal 32'767 Zeichen aufnehmen.

Abbildung: Textfeld-Schaltfläche auf der Zeichnen-Symbolleiste
(Ausschnitt vergrössert)
Mehr über diese Limitation "Maximale Länge des Textes in einem Textfeld" erfahren Sie hier:
Weitere Informationen |
Textfeld (Symbolleiste "Steuerelement-Toolbox")
» Das in ein Arbeitsblatt eingebettete Textfeld-Steuerelement kann mindestens 340'000 Zeichen aufnehmen.
Textbox (Werkzeugsammlung des VBA-Editors)
» Das auf einem Benutzerformular angeordnete Textbox-Steuerelement kann mindestens 1'000'000 Zeichen aufnehmen.
Textfeld (Steuerelement-Typ msoControlEdit)
» Das Textfeld auf einer Symbolleiste kann maximal 255 Zeichen aufnehmen.
Haben Sie Fragen,
Anregungen oder einen Fehler entdeckt?
Kontakt zum Autor
Zuletzt aktualisiert am
4.05.2006 / 17:00 Uhr
Zuletzt kontrolliert am 22.12.2008 / 07:00 Uhr
© 2002-2009 by Philipp von Wartburg, Schweiz
Alle Rechte vorbehalten