{"id":10591,"date":"2023-01-18T22:40:01","date_gmt":"2023-01-18T21:40:01","guid":{"rendered":"https:\/\/www.palentino.es\/blog\/?p=10591"},"modified":"2023-01-18T22:43:25","modified_gmt":"2023-01-18T21:43:25","slug":"macro-para-reemplazar-texto-en-varios-documentos-microsoft-word-simultaneamente","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/macro-para-reemplazar-texto-en-varios-documentos-microsoft-word-simultaneamente\/","title":{"rendered":"Macro para reemplazar texto en varios documentos Microsoft Word simult\u00e1neamente."},"content":{"rendered":"<p>Buenas.<\/p>\n<p>Os dejo el <strong>c\u00f3digo fuente<\/strong> para reemplazar texto dentro del documento en varios archivos Word (hasta 500 por defecto) con<strong> extensi\u00f3n docx<\/strong> simult\u00e1neamente y de forma automatizada. Es necesario crear la macro en <strong>VBA<\/strong>. Una vez creada al ejecutarse pide que selecciones los Word que quieres cambiar, despu\u00e9s pedir\u00e1 el texto a buscar y el texto a reemplazar.\u00a0<strong> Se ha probado en Word 365 y 2019.<\/strong><\/p>\n<p>Reemplazar\u00e1 hasta 500 documentos, pero se puede personalizar ese dato en el c\u00f3digo.<\/p>\n<p><!--more--><\/p>\n<pre>Sub Reemplazar()\r\n'\r\n'Reemplazar - Por @oscardelacuesta\r\n'Macro para reemplazar texto en varios documentos Word simult\u00e1neamente.\r\n'Se ha probado en Office 365 y 2019\r\n\r\n\r\nDim StrDocumento As Document\r\nDim StrEncontrar As String\r\nDim StrReemplazar As String\r\n\r\nDim Dialogo As FileDialog, GetStr(1 To 500) As String 'Establecer el l\u00edmite de archivos\r\n\r\nOn Error Resume Next 'Por si se genera alg\u00fan error inesperado que avance el proceso\r\n\r\nSet Dialogo = Application.FileDialog(msoFileDialogFilePicker)\r\n\r\nWith Dialogo\r\n    .Filters.Clear\r\n    .Filters.Add \"Todos los Ficheros Word \", \"*.docx\", 1\r\n    .AllowMultiSelect = True\r\n    i = 1\r\n   \r\n    If .Show = -1 Then\r\n        For Each stiSelectedItem In .SelectedItems\r\n            GetStr(i) = stiSelectedItem\r\n            i = i + 1\r\n        Next\r\n        i = i - 1\r\n    End If\r\n\r\n    Application.ScreenUpdating = False\r\n    StrEncontrar = InputBox(\"Encontrar:\", \"Palabra a buscar\", StrEncontrar)\r\n    StrReemplazar = InputBox(\"Reemplazar con:\", \"Palabra a reemplazar\", StrReemplazar)\r\n    \r\n    For y = 1 To i Step 1\r\n        Set StrDocumento = Documents.Open(FileName:=GetStr(j), Visible:=True)\r\n        Windows(GetStr(y)).Activate\r\n        Selection.Find.ClearFormatting\r\n        Selection.Find.Replacement.ClearFormatting\r\n        With Selection.Find\r\n            .Text = StrEncontrar  'Cadena a encontrar\r\n            .Replacement.Text = StrReemplazar  'Cadena a reemplazar\r\n            .Forward = True\r\n            .Wrap = wdFindAsk\r\n            .Format = False\r\n            .MatchCase = False\r\n            .MatchWholeWord = False\r\n            .MatchByte = True\r\n            .MatchWildcards = False\r\n            .MatchSoundsLike = False\r\n            .MatchAllWordForms = False\r\n        End With\r\n        Selection.Find.Execute Replace:=wdReplaceAll\r\n        Application.Run macroname:=\"NEWMACROS\"\r\n        ActiveDocument.Save\r\n        ActiveWindow.Close\r\n    Next\r\n   \r\n    Application.ScreenUpdating = True\r\n\r\nEnd With\r\n\r\n\r\nMsgBox \"Operaci\u00f3n completada con \u00e9xito. Salu2 &gt; @oscardelacuesta\", vbInformation\r\n\r\n\r\nEnd Sub\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Buenas. Os dejo el c\u00f3digo fuente para reemplazar texto dentro del documento en varios archivos Word (hasta 500 por defecto) con extensi\u00f3n docx simult\u00e1neamente 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\u00e9s pedir\u00e1 el texto a buscar y el texto a reemplazar.\u00a0 Se ha probado en Word 365 y 2019. Reemplazar\u00e1 hasta 500 documentos, pero se puede personalizar ese dato en el c\u00f3digo.<\/p>\n","protected":false},"author":1,"featured_media":5353,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1415],"tags":[2236,449],"class_list":["post-10591","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categoria-es","tag-macro","tag-word"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/10591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=10591"}],"version-history":[{"count":8,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/10591\/revisions"}],"predecessor-version":[{"id":10599,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/10591\/revisions\/10599"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/5353"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=10591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=10591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=10591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}