Tecnología

Inicio

Cómo mejorar el rendimiento de VBA en Word

Optimizar el rendimiento de VBA en Microsoft Word por familiarizarse con cómo utilizan mucha memoria diferentes tipos de datos, operadores y funciones. Por ejemplo, las variables "entero" se convierten automáticamente a las variables "largos", lo que significa que sería más prudente cuando es posible sólo para declarar variables "largos" en lugar de variables "entero". Existen trucos similares para muchos otros componentes de VBA.

Instrucciones

Variables

1 Especificar un tipo de datos cada vez que se declara una variable, ya que las variables no especificadas se les asigna un tipo de variante, y este tipo emplean más memoria que los otros tipos.

2 Utilizar un tipo de datos de moneda sobre el tipo de datos de coma flotante siempre que sea posible. Ofrece prácticamente la misma funcionalidad que el segundo, pero se puede procesar más rápido.

3 Aprovechar las variables de objeto si se debe hacer referencia a un objeto más de una vez dentro de un módulo, ya que almacena la variable de objeto en la memoria y por lo tanto evita VBA de tener que mirar hacia arriba cada vez.

4 elementos de la matriz de la tienda en las variables temporales antes de ejecutar a través de un bucle, ya que es mucho más lento para recuperar a través de una matriz.

5 Declarar variables vacías mediante el uso de "vbNullString" en lugar de comillas dobles. Desde "vbNullString" es una función en lugar de una cadena, por lo tanto, se puede procesar un poco más rápido.

Diverso

6 Reducir las operaciones de concatenación cuando sea posible mediante el uso de la función "medio" en su lugar. Tenga en cuenta que la cadena de reemplazo debe ser la misma longitud que la subcadena tiene la intención de reemplazar.

7 Bucle a través de una colección con el "para cada" declaración en lugar de mediante el uso de un índice. Por ejemplo, es mejor que escribir "para cada variable como VARIABLE_SUB" de lo que es el tipo "para i = 1 a VARIABLE.count."

8 Efectuar la división entera con el "\" operador de división de enteros debido a que el operador de división estándar "/" de punto flotante siempre se calcula un valor de tipo double.

9 Convertir caracteres de cadena en valores ANSI cuando se comparan las variables de cadena. Por ejemplo, la expresión "si asc (strText) = 32, luego" procesos más rápido que la expresión "si la izquierda (strText, 1) =" " '.