Rapaz, Graymalkin, está ralado. É porque eu sou novo em C# e em programação OO. Tentei um bocado de coisa aqui, mas ainda não consegui resolver meu problema. Olha o que eu fiz: Pesquisei a ajuda do VBA do Word pra conhecer algumas coisas e, depois, simulei a localização de uma palavra pra gerar a macro. A macro ficou assim: Sub TesteLocalizar()
'
' TesteLocalizar Macro
' Macro gravada 9/11/2006 por Andre
'
Selection.Find.ClearFormatting
With Selection.Find
.Text = "$nome$"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
End Sub
Tentei colocar isso no C# e escrevi assim (a alteração que fiz foi apenas na 3ª linha com relação ao código que li no seu artigo):
Selection = tipoWord.InvokeMember("Selection", BindingFlags.GetProperty, null, winword, new Object[] { });
tipoSelection = Selection.GetType();
tipoSelection.InvokeMember("Find", BindingFlags.InvokeMethod, null, Selection, new Object[] { "$nome$" });
Só que não funcionou. Tentei também colocar alguns outros parâmetros ao lado de "$nome$", mas também não deu. (Não sei nem se é ali mesmo onde se colocam parâmetros)
Aí, achei que esta linha pudesse retornar a string da palavra, aí coloquei assim:
resultado = tipoSelection.InvokeMember("Find", BindingFlags.InvokeMethod, null, Selection, new Object[] { "$nome$" }).ToString(); sendo resultado uma string, mas também não funcionou. você pode me dar uma ajuda aí? Em que que eu estou errando? Com relação a parâmetros, como faz? Desde já, agradeço muito. Valeu!