Un solo proyecto puede contener hasta 32.000 identificadores (palabras no reservadas), incluidos (entre otros) formularios, controles, módulos, variables, constantes, procedimientos, funciones y objetos. Tenga en cuenta que la cantidad real de identificadores está limitada por la memoria disponible.
Los nombres de variables en Visual Basic no pueden exceder los 255 caracteres, y los nombres de formularios, controles, módulos y clases no pueden exceder los 40 caracteres. Visual Basic no limita la cantidad real de objetos diferentes en un proyecto.
◆Limitaciones de control◆
Cada control no gráfico (todos los controles excepto formas, líneas, imágenes y etiquetas) utiliza una ventana. Cada ventana utiliza recursos del sistema, por lo que el número total de ventanas que pueden existir simultáneamente está limitado por los recursos disponibles. El límite exacto depende de los recursos disponibles del sistema y del tipo de control utilizado. Para reducir el consumo de recursos del sistema, puede utilizar controles de forma, línea, etiqueta e imagen en lugar de controles de cuadro de imagen al crear o mostrar gráficos.
1. Número total de controles
La cantidad máxima de controles permitidos en un solo formulario depende del tipo de controles utilizados y de los recursos disponibles del sistema. Sin embargo, existe un límite fijo de solo 254 nombres de control permitidos por formulario. Debido a que todos los controles de la matriz comparten un nombre de control, la matriz de controles solo cuenta este límite una vez. En todas las versiones, el límite de los índices de la matriz de control está en el rango de 0 a 32.767. Si coloca controles encima de cada control, como anidar controles de marco en un marco, Visual Basic generalmente solo acepta no más de 25 niveles de controles anidados.
2. Restricciones a los controles especiales
La siguiente tabla enumera las restricciones de propiedad para controles especiales en Visual Basic.
Controles de cuadro de lista List y ListCount y controles de cuadro combinado: el número máximo de elementos es 32 KB y el límite de tamaño para cada elemento es 1 KB (1024 bytes);
Control de cuadro de texto: limitado a 64K;
Control de etiqueta de título: limitado a 1024 bytes;
Controles de botones de comando, controles de casillas de verificación, controles de marco y controles de botones de opción: limitados a 255 caracteres, y cualquier título que exceda estos límites se trunca;
Título de propiedad de control personalizado: limitado a 32K
Controles del menú: limitado a 235 caracteres
Etiquetar todos los controles: limitado al tamaño de memoria disponible
Nombra todos los controles: limitado a 40 caracteres
Tenga en cuenta que en Visual Basic, los nombres de las propiedades de control están limitados a 30 caracteres.
◆Restricciones de código◆
El número total de líneas de código que se pueden cargar en un formulario, clase o módulo estándar está limitado a 65.534 líneas. Una línea de código está limitada a 1023 bytes. No puede haber más de 256 espacios iniciales antes del texto real en una línea y no más de 25 caracteres de continuación de línea (_) en una línea lógica.
1. Procedimientos, tipos y variables
No hay límite en el número de procedimientos por módulo. Cada proceso puede contener hasta 64K de código. Si un procedimiento o módulo excede este límite, Visual Basic genera un error en tiempo de compilación. Si encuentra este tipo de error, puede evitarlo dividiendo un procedimiento particularmente grande en varios procedimientos más pequeños o moviendo la declaración a nivel de módulo a otro módulo. Visual Basic utiliza tablas para almacenar nombres de identificadores (variables, procedimientos, constantes, etc.) en el código. Cada tabla está limitada a 64K.
2. Tabla de declaración de biblioteca de enlaces dinámicos
Cada módulo de formulario y código utiliza una tabla que describe la estructura del punto de entrada de la biblioteca de vínculos dinámicos. Cada estructura tiene aproximadamente 40 bytes y el tamaño de la tabla está limitado a 64 KB, lo que da como resultado aproximadamente 1500 declaraciones por módulo.
3. Lista de proyectos
Toda la aplicación utiliza una tabla que contiene todos los nombres. Estos nombres incluyen:
·Nombre constante
·Nombre de la variable
·Nombre de definición de tipo personalizado
·Nombre del módulo
·Nombre de declaración del procedimiento DLL
No hay límite en el tamaño total de la tabla de nombres del proyecto, pero las entradas que distinguen entre mayúsculas y minúsculas no deben exceder los 32 KB. Si se excede el límite de 32 KB, el identificador privado se puede reutilizar en un módulo diferente para limitar el número de entradas que distinguen entre mayúsculas y minúsculas a 32 KB.
4. Tabla de entrada
Cada vez que se hace referencia a un identificador en un módulo diferente, se crea una entrada en la tabla de entrada. Cada una de estas entradas tiene al menos 24 bytes, pero está limitada a 64 K, por lo que cada módulo puede tener aproximadamente 2000 referencias.
5. Tabla de entrada de módulos
Cada módulo en esta tabla tiene hasta 125 bytes, pero hay un límite total de 64 KB, por lo que cada proyecto puede producir aproximadamente 400 módulos.
◆Limitación de datos◆
Las siguientes restricciones se aplican a las variables en el lenguaje Visual Basic.
1. Datos del formulario, estándar y módulo de clase.
La sección de datos del módulo VBA (es decir, los datos definidos en la sección de declaración) de cualquier formulario o módulo en Visual Basic tiene hasta 64 K de sección de datos, que incluye los siguientes datos:
·Variables locales declaradas con Static
·Variables a nivel de módulo que no son matrices ni cadenas de longitud variable
·Cada matriz de módulos y cadena de longitud variable ocupa 4 bytes
2. Procedimientos, tipos y variables
Si un procedimiento o módulo excede el límite de código de 64 KB, Visual Basic genera un error en tiempo de compilación.
Si las variables locales definidas en un procedimiento superan los 64 K, se genera el error "Demasiadas variables locales no estáticas".
Si las variables a nivel de módulo definidas en un módulo superan los 64 K, o el tipo personalizado definido es mayor que 64 K, se produce el error "Los datos fijos o estáticos no pueden exceder los 64 K".
Si encuentra este tipo de error, puede evitarlo dividiendo un procedimiento demasiado grande en varios procedimientos más pequeños o moviendo la declaración a nivel de módulo a otro módulo.
Las matrices declaradas como variables no pueden utilizar todo el espacio de la matriz; solo los descriptores de la matriz contribuyen al límite de 64 KB. Por ejemplo, declarado en un procedimiento o como declaración a nivel de módulo, Dimx(1000000)AsByte. Sin embargo, si declara una matriz grande de registros de tamaño fijo y luego declara instancias de esos registros como variables, puede ocurrir un desbordamiento de la memoria.
3. Tipos personalizados
Aunque la suma de muchas cadenas de longitud variable de tipo personalizado puede exceder los 64 K (cada cadena de longitud variable de tipo personalizado solo ocupa 4 bytes; y el contenido real de la cadena se almacena por separado), las variables de tipo personalizado no pueden exceder los 64 K. Los tipos personalizados se pueden definir con otros tipos personalizados, pero el tamaño total de este tipo no puede exceder los 64 KB.
4. Espacio de pila
Los parámetros y las variables locales durante el tiempo de ejecución ocupan espacio en la pila. Las variables a nivel de módulo y las variables estáticas no ocupan espacio en la pila porque están asignadas en la sección de datos del formulario o módulo. Cualquier procedimiento DLL que se llame utiliza la pila al ejecutarse.
El propio Visual Basic utiliza la pila, por ejemplo, para guardar valores intermedios mientras evalúa expresiones.
El tamaño total de pila disponible en Visual Basic es de un megabyte (1 MB) por subproceso. Sin embargo, el tamaño de la pila puede exceder este límite si hay memoria libre adyacente.
◆Limitaciones de recursos del sistema◆
Ciertas limitaciones de Visual Basic y las aplicaciones creadas con él se ven afectadas por Microsoft Windows. Estas restricciones varían según la versión de Microsoft Windows.
Cada ventana abierta utiliza recursos del sistema (el área de datos utilizada por Microsoft Windows). Si se ejecuta más allá del rango de recursos del sistema, se producirá un error de tiempo de ejecución "Recursos disponibles insuficientes para que Windows se ejecute". Puede seleccionar "Acerca de" en el menú "Ayuda" del "Administrador de programas" o "Administrador de archivos" en Windows NT3.51, o seleccionar "Acerca de" en el menú "Ayuda del Explorador de Windows" en Windows 95 y Windows NT4.0. para detectar el porcentaje de recursos restantes del sistema. Las aplicaciones también pueden llamar a la API de Windows GetFreeSystemResources para recuperar recursos del sistema, cerrar ventanas (como formularios abiertos y ventanas de "código", y ventanas de otras aplicaciones) y salir de las aplicaciones en ejecución.
->