Visual Basic - Seleccionar ContentControl en Word

Life is soft - evento anual de software empresarial
   
Vista:

Seleccionar ContentControl en Word

Publicado por Heyder P (1 intervención) el 28/10/2009 18:39:41
Buenas, mi inquietud es la siguiente: he realizado una macro en word que ubica todos los campos de control de contenido del documento y la idea es referenciar cada vez que este texto aparezca en el resto del documento creando un marcador en el control de contenido. El problema está en como selecciono el control de contenido para crear el marcador en esa misma posición, por lo pronto lo que hago es buscar el texto que este contiene, el inconvenietne con esto es que si el en documento se encuentra el texto antes que el control se ubica el marcador en una posicion no deseada. Espero ser lo suficientemente claro. Mi código es:

Sub macromarcado()
'
' macromarcado Macro
'
'
Dim i As Long
Dim ac As Long
Dim cod As String
With ActiveDocument
For i = 1 To .ContentControls.Count
Selection.HomeKey Unit:=wdStory
If .ContentControls(i).title = "codigo" Then
cod = .ContentControls(i).Range
With Application.Selection.Find
.ClearFormatting
.Text = cod
.Execute Forward:=True
End With
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:=cod
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
End If
ac = 0
While ac = 0
With Application.Selection.Find
.Forward = True
.MatchWholeWord = True
.ClearFormatting
.Wrap = wdFindStop
.Text = cod
.Execute Forward:=True
If .Found = True Then
Selection.InsertCrossReference ReferenceType:="Marcador", ReferenceKind:= _
wdContentText, ReferenceItem:=cod, InsertAsHyperlink:=True, _
IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
.Application.Selection.Collapse Direction:=wdCollapseEnd
Else
ac = 1
End If
End With
Wend
Next i
End With

End Sub
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