Visual Basic para Aplicaciones - Macro de Word

Life is soft - evento anual de software empresarial
 
Vista:

Macro de Word

Publicado por Carlos (1 intervención) el 29/01/2005 00:04:10
Hola, tengo una consulta que no encuentro la solución mas aceptable.
En el Word hay una opción en en menú "Ver" y "Mapa del documento" que muestra todos los Titulos (Los Estilos) en una columna que habre a la izquierda de la pantalla. Yo hice el siguiente subprograma que recorre todo el documento activo y toma los titulos (en este caso los "titulos 1" segun se ve en la constante "wdOutlineLevel1") y en este caso los muestro por medio de un "MsgBox", también se podria llenar una matriz u otra cosa según se necesite. La rutina es la siguiente:

Sub TomarTitulos()
Dim NumParr As Integer, Titulos As String
NumParr = 1
While NumParr <= ActiveDocument.Paragraphs.Count
If ActiveDocument.Paragraphs(NumParr).OutlineLevel = OutlineLevel1 Then
Titulos = Titulos + ActiveDocument.Paragraphs(NumParr).Range.Text + vbCrLf
End If
NumParr = NumParr + 1
Wend
MsgBox Titulos
End Sub

El procedimiento funciona bien tomando todos los "titulos 1" del documento (Si es que tiene titulos 1), sin embargo tiene la desventaja que en un documento con muchos párrafos tarda demasiado y lamentablemente el trabajo que tengo que hacer demanda que el tiempo de demora sea minimo o imperceptible. Ahora bien, si utilizo la opcion "Mapa del documento" del menú "Ver" hace lo mismo pero inmediatamente, eso significa que debe estar guardado en algun lado los titulos del documento y por lo tanto debe haber un objeto de VBA para Word por medio del cual pueda leer esos titulos, la pregunta es precisamente esa, cual es ese objeto y como se utiliza para, por ejemplo, llenar una matriz o simplemente concatenar esos titulos en un string.
Espero que alguien conozca como hacerlo.
Muchas gr
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder