programacion objetos metodos genericos generica ejercicios arreglos arreglo array arrays ms-word word-vba

arrays - objetos - Matriz ya dimensionada-Módulo de clase



metodos genericos java (1)

Por razones determinadas, técnicas, no podemos usar estilos en palabras. En un esfuerzo por acelerar la aplicación de propiedades globales una y otra vez, he creado una clase que puede leer desde una simple hoja de estilo xml. La hoja contiene diferentes "párrafos". Cada párrafo simplemente almacena las propiedades de párrafo que más usamos.

Estoy acostumbrado a C ++, donde puedo usar memoria dinámica y estoy tratando de replicar el comportamiento de una matriz dinámicamente asignada. Sin embargo, cuando intento volver a atenuarme aparece el mensaje de error "Array ya dimensionado".

Mi investigación en MSDN sugiere que para ReDim la matriz debe ser Global o en el "contexto de declaración general". Esto me hace pensar que simplemente no sería posible hacerlo en una clase.

Extracto de MSDN:

"Puede usar ReDim solo a nivel de procedimiento. Por lo tanto, el contexto de declaración para la variable debe ser un procedimiento: no puede ser un archivo fuente, un espacio de nombres, una interfaz, una clase, una estructura, un módulo o un bloque "

Intenté buscar desbordamiento de pila para "Word VBA Array ya dimensionado" y revisé las 3 páginas de resultados sin resultado.

private type pStyle ''Definition removed because it''s not needed private Paragraphs(0) As pStyle ''Initially an empty array of paragraphs

después tengo la siguiente función

Public Function AddEmpty() ''Create space count = count + 1 ReDim Preserve Paragraphs(count) AddEmpty = count End Function

Por favor, hágame saber si hay alguna idea. Preferiría no tener que "estimar" el número de estilos de párrafo que necesitaremos para cada hoja de estilos, ya que cada archivo es diferente.


Private Paragraphs(0) As ...

Esta no es una matriz vacía, sino que es una matriz de longitud fija con 1 elemento.

Para una matriz dinámica , una que redimensionarás más tarde, simplemente declara como:

Private Paragraphs() As ...