Gonduana

Contenidos para traductores

  • Blog
  • Empieza por aquí
    • Encuesta: coger
    • Encuesta: ratón o mouse
    • Artículos más leídos
    • Vídeos más vistos
    • Gonduana en las redes sociales
    • ¿Quieres saber más sobre mí?
  • Recursos
    • Software para traductores
    • Hardware para traductores
    • Internet para traductores
    • WordPress para traductores
  • Sobre mí
  • Servicios
  • Contacto

Cómo borrar los retornos en Word

Publicado el 5/septiembre/2019 por Jesús Prieto

Borrar los retornos en Word

¿Alguna vez has querido borrar los retornos en Word, pero se te borraban no solo los seleccionados, sino todos los del documento abierto?

Pues que no cunda el pánico, ¡porque hay solución!

Índice

  • Planteamiento del problema
  • 1. Borrar retornos uno a uno
  • 2. Borrar retornos en Word con una macro
  • Mejoras en la macro
    • 1.ª mejora: Borrar guiones automáticos
    • 2.ª mejora: Operativa
  • Conclusiones

Planteamiento del problema

Es un caso que se da mucho cuando tienes un documento de Word que procede de un PDF. Es decir, cuando tienes que traducir un documento PDF, que conviertes a un formato DOCX, ya sea copiando y pegando o empleando un OCR, es muy posible que tengas un montón de retornos de párrafo innecesarios:

☛ Como ves en la anterior imagen, Word indica cada símbolo de párrafo con un calderón (¶) y cada espacio con un punto medio (·). Antes de ponerte a borrar retornos de párrafo, te recomiendo tener a la vista estos caracteres; para ello, deberás marcar el botón de Mostrar todo en la pestaña de Inicio de Word:

calderón de Word

No sería un gran problema, pero de todos es sabido que estos retornos sientan como un tiro a las herramientas de traducción asistida que empleamos, como Trados Studio o memoQ:

documento de Word con saltos innecesarios abierto en Trados Studio

Como ves, cada línea del documento DOCX es un segmento en Trados Studio, lo que puede resultar muy molesto para el traductor.

Por ello, para evitar problemas, antes de abrir el documento DOCX con tu herramienta de traducción, conviene procesar un poco el documento y borrar todos los retornos innecesarios dentro de Word.

Hay varias formas de borrar estos retornos innecesarios en Word:

1. Borrar retornos uno a uno

La primera forma implica ir borrando manualmente cada retorno innecesario y sustituirlos por un espacio:

Borrar los retornos en Word manualmente (imagen animada)

Es una opción válida, siempre y cuando el documento no sea muy grande. Si tienes que repetir este borrado demasiadas veces, primero tardarás mucho (¿lo vas a facturar al cliente?) y, segundo, con el cansancio y el aburrimiento aumentan las posibilidades de que te equivoques (¿te puedes permitir estos fallos y no dedicarte a tareas más productivas?).

2. Borrar retornos en Word con una macro

Si el documento es grande, te recomiendo borrar siempre los retornos de esta manera, aunque cuando descubras el potencial de las macros de VBA, lo utilizarás incluso para reemplazos menos numerosos.

Aquí se trata de programar una pequeña macro de VBA para borrar automáticamente los retornos en Word, tal que así:

Borrar los retornos en Word con VBA (imagen animada)

Chulo, ¿verdad?

Lo primero que se te puede ocurrir es grabar una macro con el Grabador de macros para borrar los retornos en Word. Es decir, en Word te pones en modo de grabación de macro, seleccionas el texto, reemplazas un retorno por un espacio, y paras la grabación. Pero esta vía tiene un problema: te borra TODOS los retornos, ¡sin dejar ningunos vivo!

Y esto no es lo que queremos, aquí ¿verdad? Queremos borrar solo los retornos seleccionados.

Así que la alternativa es otra macro de Word, que te puedes descargar. Repito: BORRAR SOLO LOS RETORNOS SELECCIONADOS.

Descargar macro para Seleccionar todos los segmentos de Trados Studio con AutoHotkey

La macro es muy breve:

Sub QuitaSaltosDePárrafo()
' Macro de Word para borrar todos los retornos seleccionados
' https://www.gonduana.com/como-borrar-los-retornos-en-word

Dim oRng As Word.Range
Dim oRangoLímite As Word.Range
Set oRango = Selection.Range
Set oRangoLímite = oRango.Duplicate
  With oRango.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "^p"
    .Replacement.Text = " "
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    While .Execute
      If oRango.InRange(oRangoLímite) Then
        oRango.Text = " "
        oRango.Collapse wdCollapseEnd
      Else
        Exit Sub
      End If
    Wend
  End With
End Sub

Lo que hace la macro es reemplazar cada retorno seleccionado por un espacio. Es decir, automatiza el borrado manual que vimos antes.

Es cierto que en los párrafos breves, de dos líneas, la macro no tiene una ventaja clara respecto al borrado manual. ¡Pero te aseguro que es una delicia en párrafos grandes!

☛ Espero que te sea tan útil como a mí, ya que la empleo casi cada día.

☛ No es una macro mía, sino que la encontré en internet. Las gracias y los honores, para Greg Maxey. Si quieres ver otras macros avanzadas de Greg, las tienes en su web. Thanks very much, Greg, if you ever read this!

Mejoras en la macro

Te voy a dar un par de ideas para que mejores la macro y dejo la tarea a tu buen hacer.

1.ª mejora: Borrar guiones automáticos

El problema que busca una solución mejorada de la macro es el siguiente: Hay documentos de Word que tienen guiones justo antes del retorno que se deberían borrar. El motivo de estos guiones innecesarios es que eran guiones automáticos en el documento original (formato InDesign, por ejemplo), que al copiarlos del PDF al DOCX se copian no como automáticos, sino como manuales.

La idea es que puedes ampliar la macro VBA para que reemplace un guion seguido por un retorno por un espacio, es decir:

- ¶ = [espacio]

2.ª mejora: Operativa

Otra mejora, no ya de la macro en sí, radica en agilizar su ejecución.

Una posibilidad es habilitar un botón en la cinta o en la barra de acceso rápido de Word, para tener la macro siempre a mano. Yo la tengo en este botón de la barra de acceso rápido:

Otra posibilidad, aún más rápida, es crear un método abreviado de teclado, como  F12 , para ejecutar la macro rápidamente. Después de seleccionar las líneas con el ratón, con la otra mano pulsas  F12 .

Por si te lo estás preguntando: No, no uso la tecla  F12  del teclado para copiar en el Explorador de Archivos. Más bien uso uno de los 12 botones de este ratón:

ratón UtechSmart Venus y AutoHotkey

☛ Como ves, un botón de este ratón me permite borrar retornos de párrafo. Así que selecciono y borro con el ratón, todo con una sola mano.

Más información sobre este ratón, en este artículo:

Un ratón de jugar, el UtechSmart Venus, ¡para trabajar!

Elijas la operativa que elijas, que te sientas cómodo y que sea para ir más rápido.

Conclusiones

Cómo borrar los retornos innecesarios de un documento de Word:

  1. Descargar la macro VBA de este artículo.

  2. Insertar la macro VBA en Word (p. e., en la plantilla Normal).

  3. Seleccionar en Word el texto que contiene los retornos que quieres borrar.

  4. Ejecutar la macro.

  5. Repetir los pasos 2, 3 y 4 hasta borrar todos los retornos innecesarios.

Entradas relacionadas

Si te ha gustado el artículo, además de compartirlo en tus redes sociales,

puedes leer otros artículos de Gonduana del mismo estilo:

Macro de VBA para pegar sin formato en Word

2/agosto/2020

Al hilo del artículo anterior del blog, algunos me habéis comentado que sería interesante tener también la macro de VBA para pegar sin formato en

Leer el artículo »
Macro de AutoHotkey para pegar sin formato en Word

Macro de AutoHotkey para pegar sin formato en Word

16/julio/2020

Hoy en LinkedIn he leído un artículo de How-To Geek que recomienda usar el atajo de teclado  CTRL + MAYÚS + V  para pegar sin formato en muchas aplicaciones.

Leer el artículo »
Macros de Word para ordinales

Mis macros de Word para ordinales (Marisa E Schieda)

11/noviembre/2019

Este artículo es el segundo programado de Marisa E. Schieda, una correctora y bloguera argentina que quiere compartir contigo sus macros de Word para ordinales.

Leer el artículo »
Macros de Word para las abreviaturas de número

Mis macros de Word para abreviaturas de “número”

10/noviembre/2019

Este artículo es de Marisa E. Schieda, una correctora y bloguera argentina que quiere compartir contigo sus macros de Word para abreviaturas de «número», cuya

Leer el artículo »
Cómo exportar las entradas de Autocorrección a otro ordenador

Cómo exportar las entradas de Autocorrección a otro ordenador

22/septiembre/2019

Seguramente alguna vez has querido exportar las entradas de Autocorrección para poder llevártelas a otro ordenador. ¿Quieres saber cómo?

Leer el artículo »
Quitar duplicados con una función de Excel

Cómo quitar duplicados con una función de Excel

21/abril/2019

Si eres lector de este blog, seguramente recuerdas haber leído algún artículo para quitar duplicados de listas, ¿verdad? Ahora lo veremos desde una perspectiva distinta,

Leer el artículo »
Jesús Prieto

Jesús Prieto

Querido traductor: quiero compartir contigo muchas cosas que podrás aprovechar como profesional: desde herramientas especiales hasta técnicas comerciales; desde estrategias de marketing hasta trucos de productividad personal; desde cómo diseñar tu marca personal hasta novedades de impuestos.
Todos los artículos

Publicado en: macros Etiquetado como: VBA, Word

Comentarios

  1. Marisa dice

    9/septiembre/2019 a las 7:05 am

    ¡Mil gracias! Esta ni se me había cruzado por la mente.

    Responder
    • Jesús Prieto dice

      9/septiembre/2019 a las 10:00 am

      Era complicada, sí. ¡Qué bien que hay gente que comparte sus macros!
      Un abrazo,
      … Jesús Prieto …

      Responder
      • Marisa E. dice

        9/septiembre/2019 a las 10:34 am

        Tengo una de limpieza "profunda de originales que me costó sudor y ... sudor, lágrimas no..
        Empecé con una consulta que te hice ya hace unos años acerca de corrección de espacios. Probé algunas de las que compartiste en otras entradas, pero tuve que retocarlas..
        Ahora les agarré bastante la mano.
        Te copio esta, que Corrige Nº/nº a N.º/n.º y todos los ordinales.
        También cambia la ó pos o entre cifras... Ahí tuve una ayudita, creo que de Cálamo&Cran.
        Le agregué ventana emergente para evitar confusiones... Si encontrás algún fallo, avisame que reviso. ¡Gran abrazo!

        Sub NumeroOrdinales()
        '
        ' NumeroOrdinales Macro
        '
        '
        MsgBox "N.º/ Ordinales .º, .ª: OJO, cambia grado por superíndice o"
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
        .Text = "([Nn])([ªº])[ ]@."
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([Nn])[ ]@.[ ]@([ªº])"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "<n°"
        .Replacement.Text = "n.°"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "<N°"
        .Replacement.Text = "N.°"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "<n °"
        .Replacement.Text = "n.°"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "<N °"
        .Replacement.Text = "N.°"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(n.°)(.)"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(N.°)(.)"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<n.º)([0-9])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<N.°)([0-9])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<n.°) @([0-9])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<N.°) @([0-9])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
        .Text = "<nº"
        .Replacement.Text = "n.º"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "<Nº"
        .Replacement.Text = "N.º"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "<n º"
        .Replacement.Text = "n.º"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "<N º"
        .Replacement.Text = "N.º"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(n.º)(.)"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(N.º)(.)"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<n.º)([0-9])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<N.º)([0-9])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<n.º) @([0-9])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<N.º) @([0-9])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([Nn0-9])(°)"
        .Replacement.Text = "\1.º"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@)(°)"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@)ª"
        .Replacement.Text = "\1.ª"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@) @(ª)"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9]@.ª)(.)"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.ª)([a-zA-Z])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.ª) @([a-zA-Z ])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.ª)([a-zA-Z ])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.°) @([a-zA-Z ])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@)(ª)"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@) @(ª)"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9]@.ª)(.)"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.ª)([a-zA-Z ])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.ª) @([a-zA-z ])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@) @(°)"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9]@.°) @(.)"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.°) @([a-zA-Z])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@)º"
        .Replacement.Text = "\1.º"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@) (º)"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9]@.º)(.)"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.º)([a-zA-Z])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.º) @([a-zA-Z ])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.º)([a-zA-Z ])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.°) @([a-zA-Z ])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@)(º)"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@) (º)"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9]@.º)(.)"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.º)([a-zA-Z ])"
        .Replacement.Text = "\1 \2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "(<[0-9]@.º) @([a-zA-z ])"
        .Replacement.Text = "\1^s\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9]@)[ ]@([ªº°])."
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9]@)[ ]@([ªº°]) @."
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9]@)[ .]@([ªº°])"
        .Replacement.Text = "\1.\2"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9])( ó )([0-9])"
        .Replacement.Text = "\1 o \3"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9])( [oó] )([8])"
        .Replacement.Text = "\1 u \3"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = "([0-9]{1;4}) ,"
        .Replacement.Text = "\1,"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        With Selection.Find
        .Text = ", ([0-9]{2})"
        .Replacement.Text = ",\1"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        End Sub

        Responder
        • Jesús Prieto dice

          16/septiembre/2019 a las 12:45 pm

          Hola, Marisa E.:
          Supongo que esto es una versión personalizada de lo que aparece en este enlace:
          https://www.calamoycran.com/blog/el-quitamanchas-del-dr-macro
          Te contacto por privado.
          Un abrazo,
          … Jesús Prieto …

          Responder
  2. Guillermo Méndez dice

    16/septiembre/2019 a las 11:08 am

    Hola, Jesús.
    Me encanta tu blog. Eres un referente en esto de la búsqueda y corrección de cadenas de texto. Enhorabuena.
    Dándole una vuelta a esto de los retornos incorrectos, he encontrado una sencilla manera con el uso de caracteres comodin en la función de Reemplazar: Buscar ">^13" y Reemplazar por espacio. Veo que omite los casos en que la palabra termina en punto, que es lo que nos interesa.
    Tu superratón hace palidecer a nuestros hámsters.

    Responder
    • Jesús Prieto dice

      16/septiembre/2019 a las 12:42 pm

      ¡Muy bien, Guillermo!
      Es otra posibilidad, aunque ya sabes que si el punto estuviera al final de una línea en mitad de un párrafo, tu comodín no lo borrará. Ídem si es una coma, punto y coma, dos puntos u otro signo de puntuación.
      Esto va mucho a gusto del consumidor, pero creo que prefiero mi comodín. Es solo marcar y borrar todos los retornos que haya dentro.
      ☛ No podría vivir sin mi superratón…
      Un fuerte abrazo,
      … Jesús Prieto …

      Responder
  3. Alberto dice

    2/mayo/2021 a las 8:25 pm

    Hola
    Muy buenas ideas, enhorabuena. Yo intentaría hacerlo todo de un solo paso sin andar seleccionado texto. Por ejemplo:
    - Empiezo sustituyendo todos los puntos y calderón por punto asterisco calderón.
    - Luego sustituyo todos los calderón por nada.
    - y finalmente sustituyo el punto y asterisco por punto calderón..
    Dejo la macro por si sirve de idea:

    Sub QuitarSaltosDeParrafo1()
    '
    ' QuitarSaltosDeParrafo1 Macro
    '
    '
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = ".^p"
    .Replacement.Text = ".*^p"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.HomeKey Unit:=wdStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = "^p"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.HomeKey Unit:=wdStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = ".*"
    .Replacement.Text = ".^p"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.Find.Execute Replace:=wdReplaceAll
    End Sub

    Ya me dirás tú opinión.
    Un saludo.

    Responder
    • Jesús Prieto dice

      3/mayo/2021 a las 3:39 pm

      Hola, Alberto:
      Sí, es una buena idea; se puede hacer así y al final comprobar los saltos, por si hay alguno que no debería haberse borrado.
      Muchas gracias por la macro.
      ¡Un fuerte abrazo!
      … Jesús Prieto …

      Responder

Comentar Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Jesús Prieto

Jesús Prieto 2015

Sobre mí

Lo más visto…

Artículos más leídos de Gonduana
Vídeos más vistos de Gonduana
Gonduana en las redes sociales

Últimos artículos

  • Celda de enfoque en Excel
  • Cómo utilizar la función TRADUCIR en Excel
  • Funciones de expresiones regulares en Excel
  • Reemplazar todo en Trados Studio 2024
  • Cosas que he aprendido este año 2022
  • Cómo escribir letras griegas con AutoHotkey
  • Macro de VBA para pegar sin formato en Word
  • Macro de AutoHotkey para pegar sin formato en Word
  • Extranjerismos en el ajedrez
  • Cómo buscar en el diccionario de la RAE con AutoHotkey

Nube de etiquetas

anglicismos AutoHotkey cobros comodines copias de seguridad correo español Excel foto fórmulas geografía geometría GTD historia imagen impagos InDesign libros marca matemáticas mouse MT ortografía Outlook parábolas PDF PHP poesía power PowerPoint RAE ratón regex retrasos tarifas teclado tipografía TM Trados Studio VBA vídeo Word WordPress XML zoología

Categorías

  • adaptación (3)
  • blog (11)
  • comercial (24)
  • contabilidad (2)
  • español (6)
  • etimología (5)
  • fiscalidad (2)
  • hardware (3)
  • macros (42)
  • marketing (8)
  • noticias (4)
  • productividad (43)
  • seguridad (5)
  • social (9)
  • software (41)
  • TAO (40)
  • terminología (9)
  • traducción automática (3)
  • traducción literaria (1)
  • tradumática (40)
  • vídeo (18)
Buscar en Gonduana
Política de privacidad
Política de cookies
Aviso legal
Creative Commons

Licencia Creative Commons

Blog de Gonduana: recursos para traductores

Esta web usa cookies
Es cansino, sí, pero la ley europea me obliga a avisarte que este blog, como casi el 100%, usa cookies para recabar datos. ¿Estás de acuerdo con mi Política de cookies? Vale Rechazar Más información
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are as essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
GUARDAR Y ACEPTAR