Un seul projet peut contenir jusqu'à 32 000 identifiants (mots non réservés), y compris (mais sans s'y limiter) des formulaires, des contrôles, des modules, des variables, des constantes, des procédures, des fonctions et des objets. Notez que le nombre réel d'identifiants est limité par la mémoire disponible.
Les noms de variables dans Visual Basic ne peuvent pas dépasser 255 caractères, et les noms de formulaires, de contrôles, de modules et de classes ne peuvent pas dépasser 40 caractères. Visual Basic ne limite pas le nombre réel d'objets différents dans un projet.
◆Limites du contrôle◆
Chaque contrôle non graphique (tous les contrôles à l'exception des formes, des lignes, des images et des étiquettes) utilise une fenêtre. Chaque fenêtre utilise des ressources système, de sorte que le nombre total de fenêtres pouvant exister simultanément est limité par les ressources disponibles. La limite exacte dépend des ressources système disponibles et du type de contrôle utilisé. Afin de réduire la consommation des ressources système, vous pouvez utiliser des contrôles de forme, de ligne, d'étiquette et d'image au lieu de contrôles de zone d'image lors de la création ou de l'affichage de graphiques.
1. Nombre total de contrôles
Le nombre maximum de contrôles autorisés sur un seul formulaire dépend du type de contrôles utilisés et des ressources système disponibles. Cependant, il existe une limite fixe de seulement 254 noms de contrôle autorisés par formulaire. Étant donné que tous les contrôles du tableau partagent un nom de contrôle, le tableau de contrôles ne compte cette limite qu’une seule fois. Dans toutes les versions, la limite des index de tableau de contrôle est comprise entre 0 et 32 767. Si vous placez des contrôles au-dessus de chaque contrôle, tels que des contrôles de frame imbriqués dans un cadre, Visual Basic n'accepte généralement pas plus de 25 niveaux de contrôles imbriqués.
2. Restrictions sur les contrôles spéciaux
Le tableau suivant répertorie les restrictions de propriété pour les contrôles spéciaux dans Visual Basic.
Contrôles de zone de liste et contrôles de zone de liste déroulante List et ListCount : le nombre maximum d'éléments est de 32 Ko et la limite de taille pour chaque élément est de 1 Ko (1 024 octets) ;
Contrôle de la zone de texte : limité à 64 Ko ;
Contrôle des étiquettes de légende : limité à 1 024 octets ;
Contrôles de bouton de commande, contrôles de case à cocher, contrôles de cadre et contrôles de bouton d'option : limités à 255 caractères, et tous les titres qui dépassent ces limites sont tronqués ;
Titre de la propriété du contrôle personnalisé : limité à 32 Ko
Commandes de menu : limitées à 235 caractères
Marquer tous les contrôles : limité à la taille de la mémoire disponible
Nommer tous les contrôles : limité à 40 caractères
Notez que dans Visual Basic, les noms de propriétés de contrôle sont limités à 30 caractères.
◆Restrictions de code◆
Le nombre total de lignes de code pouvant être chargées dans un formulaire, une classe ou un module standard est limité à 65 534 lignes. Une ligne de code est limitée à 1023 octets. Il ne peut y avoir plus de 256 espaces de début avant le texte réel dans une ligne, et pas plus de 25 caractères de continuation de ligne (_) dans une ligne logique.
1. Procédures, types et variables
Il n'y a pas de limite sur le nombre de procédures par module. Chaque processus peut contenir jusqu'à 64 Ko de code. Si une procédure ou un module dépasse cette limite, Visual Basic génère une erreur de compilation. Si vous rencontrez ce type d'erreur, vous pouvez l'éviter en divisant une procédure particulièrement volumineuse en plusieurs procédures plus petites ou en déplaçant la déclaration au niveau du module vers un autre module. Visual Basic utilise des tables pour stocker les noms d'identifiants (variables, procédures, constantes, etc.) dans le code. Chaque table est limitée à 64 Ko.
2. Table de déclaration de la bibliothèque de liens dynamiques
Chaque module de formulaire et de code utilise un tableau qui décrit la structure du point d'entrée de la bibliothèque de liens dynamiques. Chaque structure fait environ 40 octets et la taille de la table est limitée à 64 Ko, ce qui donne environ 1 500 déclarations par module.
3. Liste des projets
L'ensemble de l'application utilise un tableau contenant tous les noms. Ces noms incluent :
·Nom constant
·Nom de la variable
·Nom de définition de type personnalisé
·Nom du module
·Nom de déclaration de procédure DLL
Il n'y a aucune limite sur la taille totale de la table des noms de projet, mais les entrées sensibles à la casse ne doivent pas dépasser 32 Ko. Si la limite de 32 Ko est dépassée, l'identifiant PRivate peut être réutilisé dans un autre module pour limiter le nombre d'entrées sensibles à la casse à 32 Ko.
4. Tableau d'entrée
A chaque fois qu'un identifiant est référencé dans un module différent, une entrée est créée dans la table d'entrée. Chacune de ces entrées fait au moins 24 octets, mais limitée à 64 Ko, de sorte que chaque module peut avoir environ 2 000 références.
5. Tableau d'entrée des modules
Chaque module de ce tableau fait jusqu'à 125 octets, mais il y a une limite totale de 64 Ko, donc chaque projet peut produire environ 400 modules.
◆Limitation des données◆
Les restrictions suivantes s'appliquent aux variables du langage Visual Basic.
1. Données des modules de formulaire, de norme et de classe
La section de données du module VBA (c'est-à-dire les données définies dans la section de déclaration) de tout formulaire ou module dans Visual Basic contient jusqu'à 64 Ko de section de données, qui comprend les données suivantes :
·Variables locales déclarées avec Static
· Variables au niveau du module qui ne sont pas des tableaux et des chaînes de longueur variable
· Chaque tableau de modules et chaîne de longueur variable occupe 4 octets
2. Procédures, types et variables
Si une procédure ou un module dépasse la limite de code de 64 Ko, Visual Basic génère une erreur de compilation.
Si les variables locales définies dans une procédure dépassent 64 Ko, une erreur « Trop de variables locales non statiques » est générée.
Si les variables au niveau du module définies dans un module dépassent 64 Ko ou si le type personnalisé défini est supérieur à 64 Ko, une erreur « Les données fixes ou statiques ne peuvent pas dépasser 64 Ko » se produit.
Si vous rencontrez ce type d'erreur, vous pouvez l'éviter en divisant une procédure trop volumineuse en plusieurs procédures plus petites ou en déplaçant la déclaration au niveau du module vers un autre module.
Les tableaux déclarés comme variables ne peuvent pas utiliser tout l'espace du tableau ; seuls les descripteurs de tableau contribuent à la limite de 64 Ko. Par exemple, déclaré dans une procédure ou sous forme de déclaration au niveau du module, Dimx(1000000)AsByte. Toutefois, si vous déclarez un grand tableau d'enregistrements de taille fixe, puis déclarez des instances de ces enregistrements en tant que variables, un dépassement de mémoire peut se produire.
3. Types personnalisés
Bien que la somme de nombreuses chaînes de longueur variable de type personnalisé puisse dépasser 64 Ko (chaque chaîne de longueur variable de type personnalisé n'occupe que 4 octets ; et le contenu réel de la chaîne est stocké séparément), les variables de type personnalisé ne peuvent pas dépasser 64 Ko. Les types personnalisés peuvent être définis avec d'autres types personnalisés, mais la taille totale de ce type ne peut pas dépasser 64 Ko.
4. Espace de pile
Les paramètres et les variables locales pendant l'exécution occupent l'espace de la pile. Les variables au niveau du module et les variables statiques n'occupent pas d'espace de pile car elles sont allouées dans la section de données du formulaire ou du module. Toute procédure DLL appelée utilise la pile lors de son exécution.
Visual Basic lui-même utilise la pile, par exemple, pour enregistrer les valeurs intermédiaires lors de l'évaluation des expressions.
La taille totale de la pile disponible dans Visual Basic est d'un mégaoctet (1 Mo) par thread. Toutefois, la taille de la pile peut dépasser cette limite s'il existe de la mémoire libre adjacente.
◆Limitations des ressources système◆
Certaines limitations de Visual Basic et des applications créées avec celui-ci sont affectées par Microsoft Windows. Ces restrictions varient selon la version de Microsoft Windows.
Chaque fenêtre ouverte utilise des ressources système (la zone de données utilisée par Microsoft Windows). S'il est exécuté au-delà de la plage des ressources système, une erreur d'exécution « Ressources disponibles insuffisantes pour le fonctionnement de Windows » se produira. Vous pouvez sélectionner « À propos » dans le menu « Aide » du « Gestionnaire de programmes » ou « Gestionnaire de fichiers » sous Windows NT3.51, ou sélectionner « À propos » dans le menu « Aide de l'Explorateur Windows » sous Windows 95 et Windows NT4.0. pour détecter le pourcentage de ressources système restantes. Les applications peuvent également appeler l'API Windows GetFreeSystemResources pour récupérer les ressources système, fermer les fenêtres (telles que les formulaires ouverts et les fenêtres de « code », ainsi que les fenêtres d'autres applications) et quitter les applications en cours d'exécution.
->