Referencia Del Lenguaje de Visual Basic para Aplicaciones
Referencia Del Lenguaje de Visual Basic para Aplicaciones
Referencia Del Lenguaje de Visual Basic para Aplicaciones
Microsoft Visual Basic for Applications (VBA) es la versión de Visual Basic que se incluye
con Microsoft Office. En Microsoft Office 2010, VBA incluye características de idioma que
habilitan el código VBA para ejecutarse correctamente tanto en entornos de 32 bits y de
64 bits.
El código de ejecución VBA que se escribió antes de la versión de Office 2010 (versión
VBA 6 y versiones anteriores) en una plataforma de 64 bits puede producir errores si no
se modifica el código para ejecutar en versiones de 64 bits de Office. Se producirán
errores porque VBA versión 6 y anteriores implícitamente tienen como destino
plataformas de 32 bits y normalmente contiene ** instrucciones de declaración ** que
llaman a la API de Windows, con tipos de datos de 32 bits para punteros y
controladores. Puesto que no tiene un tipo de datos específicos para punteros o
controladores, VBA versión 6 y anteriores utilizan el tipo de datos largo, que es un tipo
de datos de 4 bytes de 32 bits para punteros y controladores de referencia. Los punteros
y los controladores en entornos de 64 bits son cantidades de 64 bits de 8 byte. Estas
cantidades de 64 bits no se mantendrá en tipos de datos de 32 bits.
Para resolver este problema y habilitar el código VBA para que funcione
correctamente en entornos de 32 bits y 64 bits, se han agregado a VBA varias
características de idioma. La tabla al final de este documento resume las nuevas
características de idioma VBA. Tres adiciones importantes son el alias de
tipoLongPtr, el tipo de datos LongLong y las palabras clave PtrSafe.
LongPtr. VBA ahora incluye el alias de tipo variable LongPtr. El tipo actual
de datos que resuelve LongPtr depende de la versión de Office que se
esté ejecutando; LongPtr resuelve Long en versiones de 32-bit de Office
y LongPtr resuelve LongLong en versiones de 64-bit de
Office. Use LongPtr para punteros y controladores.
LongLong. El tipo de datos LongLong es un entero de 64 bits firmado
que solo está disponible en versiones de 64 bits de
Office. Use LongLong para integrales de 64 bits. Las funciones de
conversión deben usarse para asignar
explícitamente LongLong (incluido LongPtr en plataformas de 64 bits) a
tipos enteros más pequeños. No se permiten las conversiones implícitas
de LongLong a integrales menores.
PtrSafe. La palabra clave PtrSafe confirma que una
instrucción Declarar es segura para ejecutar en versiones de 64 bits de
Office.
Considere los ejemplos de instrucciones Declarar. Ejecutar la sin modificar la
instrucción Declarar en versiones de 64 bits de Office se producirá un error que
indica que la instrucción Declarar no incluye el calificador PtrSafe. El ejemplo
VBA modificado contiene el calificador PtrSafe, pero tenga en cuenta que el
valor devuelto (un puntero a la ventana activa) devuelve un tipo de
datos largo. En Office de 64 bits, esto es incorrecto porque el puntero necesita
ser de 64 bits. El calificador PtrSafe indica al compilador que la
instrucción Declarar está orientada a 64 bits, por lo que se ejecuta la instrucción
sin errores. Pero debido a que ya no se actualizó el valor devuelto a un tipo de
datos de 64 bits, el valor devuelto se trunca y da como resultado un valor
incorrecto devuelto.
Para escribir el código que puede mover datos entre versiones de 32 bits y 64
bits de Office, solo necesita usar el nuevo tipo de alias LongPtr en lugar
de Long o LongLong para todos los valores de punteros y controladores. El tipo
de alias LongPtrse resolverá al tipo de datos correcto Long o LongLong según
qué versión de Office se está ejecutando.
Tenga en cuenta que si necesita ejecutar una lógica diferente, por ejemplo, si
necesita usar valores de 64 bits en proyectos de Excel de gran tamaño, puede
usar la constante de compilación condicional Win64 como se muestra en la
siguiente sección.
Escritura de código que funciona en Office 2010 (32 bits o 64 bits) y versiones
anteriores de Office
Para escribir el código que puede funcionar tanto en versiones nuevas y antiguas
de Office, puede usar una combinación de las nuevas
constantes VBA7 y Win64 condicionales de compilación. La constante de
compilación condicional Vba7 se utiliza para determinar si está ejecutando
código en la versión 7 del editor VB (la versión VBA que se incluye en Office
2010). La constante de compilación condicional Win64 se utiliza para determinar
qué versión (32 bits o 64 bits) de Office se está ejecutando.
La siguiente tabla resume las nuevas adiciones de idioma de VBA y ofrece una
explicación de cada una:
Nombre Tipo Descripción
PtrSafe Palabra clave Afirma que una instrucción Declarar está orientada a
sistemas de 64 bits. Necesario en la versión de 64 bits.
LongLong Tipo de datos tipo de datos de 8 bytes que solo está disponible en los
sistemas de 64 bits. Tipo numérico Un valor entero
entre -9,223,372,036,854,775,808 y
9,223,372,036,854,775,807.
1.1.1.
1.2. Proporciona información para ayudarle a entender la programación de
Visual Basic.
1.3. Temas conceptuales de Microsoft Forms
1.4. Proporciona información sobre UserForms y controles, y cómo
programar con ellos con Visual Basic.
1.5. Temas de procedimientos de Visual Basic
1.6. Describe procedimientos comunes y útiles (por ejemplo, cómo usar
el Examinador de objetos o cómo establecer opciones en el entorno de
Visual Basic).
1.7. Referencia del lenguaje de Visual Basic
1.8. Proporciona documentación sobre el lenguaje de Visual Basic: todos los
métodos, propiedades, instrucciones, funciones, operadores y objetos.
1.9. Definiciones de Visual Basic
1.10. Proporciona un glosario de definiciones para ayudarle a entender
los conceptos que se presentan en esta documentación.
1.11. Modelo de complementos de Visual Basic
1.12. Describe cómo personalizar el Editor de Visual Basic y proporciona
documentación para el modelo de objetos que le permite ampliar el
entorno.
1.13. Ayuda de la interfaz de usuario
1.14. Describe los elementos de la interfaz de usuario del Editor de Visual
Basic, como comandos, cuadros de diálogo, ventanas y barras de
herramientas. La sección de mensajes de error contiene las causas y soluciones
comunes para todos los problemas que pueda tener.