Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

Macro para reemplazar texto en varios documentos Microsoft Word simultáneamente.

Buenas.

Os dejo el código fuente para reemplazar texto dentro del documento en varios archivos Word (hasta 500 por defecto) con extensión docx simultáneamente y de forma automatizada. Es necesario crear la macro en VBA. Una vez creada al ejecutarse pide que selecciones los Word que quieres cambiar, después pedirá el texto a buscar y el texto a reemplazar.  Se ha probado en Word 365 y 2019.

Reemplazará hasta 500 documentos, pero se puede personalizar ese dato en el código.

Sub Reemplazar()
'
'Reemplazar - Por @oscardelacuesta
'Macro para reemplazar texto en varios documentos Word simultáneamente.
'Se ha probado en Office 365 y 2019


Dim StrDocumento As Document
Dim StrEncontrar As String
Dim StrReemplazar As String

Dim Dialogo As FileDialog, GetStr(1 To 500) As String 'Establecer el límite de archivos

On Error Resume Next 'Por si se genera algún error inesperado que avance el proceso

Set Dialogo = Application.FileDialog(msoFileDialogFilePicker)

With Dialogo
    .Filters.Clear
    .Filters.Add "Todos los Ficheros Word ", "*.docx", 1
    .AllowMultiSelect = True
    i = 1
   
    If .Show = -1 Then
        For Each stiSelectedItem In .SelectedItems
            GetStr(i) = stiSelectedItem
            i = i + 1
        Next
        i = i - 1
    End If

    Application.ScreenUpdating = False
    StrEncontrar = InputBox("Encontrar:", "Palabra a buscar", StrEncontrar)
    StrReemplazar = InputBox("Reemplazar con:", "Palabra a reemplazar", StrReemplazar)
    
    For y = 1 To i Step 1
        Set StrDocumento = Documents.Open(FileName:=GetStr(j), Visible:=True)
        Windows(GetStr(y)).Activate
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = StrEncontrar  'Cadena a encontrar
            .Replacement.Text = StrReemplazar  'Cadena a reemplazar
            .Forward = True
            .Wrap = wdFindAsk
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchByte = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        Application.Run macroname:="NEWMACROS"
        ActiveDocument.Save
        ActiveWindow.Close
    Next
   
    Application.ScreenUpdating = True

End With


MsgBox "Operación completada con éxito. Salu2 > @oscardelacuesta", vbInformation


End Sub

 

Etiquetas:,
Home Sin categoría Macro para reemplazar texto en varios documentos Microsoft Word simultáneamente.
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies