jueves, 8 de agosto de 2013

VB.NET: CODIGO PARA BUSCAR Y REEMPLAZAR UN TEXTO DE WORD DESDE UN TEXTBOX

Primero se debe tener el documento abierto y activo

Para seleccionar un texto especifico de un documento de word y reemplazarlo por el contenido de un Textbox usamos la siguiente instrucción:

Iniciaremos con el código para abrir el documento:
1)Primero hay que adicionar la referencia de Word
a) clic en Menu Project
b) clic en Add Reference
c) clic en Pestaña COM
d) Seleccionar Microsoft Word XX.X Object Library
e) clic en ok
f) Luego insertamos el siguiente codigo en la rutina deseada:

Imports Microsoft.Office.Interop.Word

Private Sub XXXXXXX
Dim wd As Microsoft.Office.Interop.Word.Application
    Dim wDoc As Microsoft.Office.Interop.Word.Document
    Dim strRutaWord As String
'El siguiente codigo es para crear la ruta,entre comillas se pone la ruta donde esta el documento
strRutaWord = "C:\Documento.doc"
       
 
'El siguiente código es para abrir el documento y hacerlo visible, si se quiere dejar el documento oculto, se cambia la palabra True por False
wd = CreateObject("word.Application")
        wDoc = wd.Documents.Open(strRutaWord)
        wd.Visible = True



        wd.Selection.Find.ClearFormatting()
        wd.Selection.Find.Replacement.ClearFormatting()
        With wd.Selection.Find
            .Text = "TEXTO A BUSCAR Y REEMPLAZAR"
            .Replacement.Text = TEXTBOX1.Text
            .Forward = True
            .Wrap = WdFindWrap.wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        wd.ActiveWindow.Selection.Find.Execute(ReplaceWith:=TEXTBOX1.Text)

End Sub


si se quisiera reemplazar el texto por alguna cadena de texto especifica cualquiera, reemplazamos la ultima parte del código por

wd.Selection.Find.ClearFormatting()
        wd.Selection.Find.Replacement.ClearFormatting()
        With wd.Selection.Find
            .Text = "TEXTO A BUSCAR Y REEMPLAZAR"
            .Forward = True
            .Wrap = WdFindWrap.wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With

     wd.ActiveWindow.Selection.Find.Execute(ReplaceWith:= "TEXTO NUEVO")




3 comentarios:

  1. Estimado Jhon Jairo esta excelente este codigo, pudieras ayduarme a reemplazar todas las palabras que encuentre en un documento, este codigo solo te reemplaza la primera.

    ResponderBorrar
  2. tengo un drama ... error El servidor lanzó una excepción. (Excepción de HRESULT: 0x80010105 (RPC_E_SERVERFAULT))

    esto es cuando intenta abrir el archivo.

    ResponderBorrar
  3. Debes de escribir la dirección de forma exacta con la extensión, revisa la terminación .docx que es la de la nueva versión de office

    ResponderBorrar

Deja tu pregunta o comentario aqui