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í
  • Contacto

Cambiar el idioma en Word: texto corrido y cuadros de texto

Publicado el 13/mayo/2015 por Jesús Prieto

Cambio de idioma en Word

Este artículo se lo debo a José Luis Posadilla, un traductor a quien no tengo el gusto de conocer en persona, pero que en este artículo me dio la idea  para cambiar el idioma en Word de todos los cuadros de texto, automáticamente, por supuesto, mediante una macro VBA.

En ese artículo del año pasado se trataba de cambiar el idioma de todos los cuadros de texto de una presentación de PowerPoint, y José Luis escribió un comentario en el que decía usar una macro VBA que hacía lo mismo, pero en Microsoft Word.

Le pregunté si no le importaba compartir su macro, él accedió, así que aquí la tienes, con algún cambio.

Gracias, José Luis, por la idea; y a los demás, que la disfrutéis…

Planteamiento del problema

Imagínate que tienes un documento de Word, escrito en inglés:

cuadro de texto en inglés 1

Como ves, tiene tanto texto corrido como cajas o cuadros de texto.

Y que lo traduces a español:

cuadro de texto en español 1

¿Te fijaste en el subrayado curvilíneo de color rojo o verde debajo de las palabras en español?

Este subrayado de color rojo sale porque el idioma de tu texto traducido sigue siendo inglés, y es evidente que Word no tiene esas palabras españolas en su diccionario de inglés.

Cambiar el idioma del texto corrido en Word

Es posible que Word detecte automáticamente el texto corrido como español, y desaparezcan los subrayados en rojo, pero no lo hará con los cuadros de texto.

De todas formas, es muy fácil cambiar el idioma del texto corrido: simplemente, selecciónalo con el ratón, y pulsa el botón que está en la barra de estado de Word (parte inferior izquierda):

selección de idioma - inglés

Como ves, el idioma actual del texto seleccionado es inglés de Estados Unidos.

Para cambiarlo, simplemente selecciona Español en el cuadro de diálogo Idioma que se abre:

cuadro de diálogo - Idioma

Ahora, en la barra de estado de Word te aparecerá Español:

selección de idioma - español

Nota: para el artículo he elegido Español (alfabetización internacional), pero puedes elegir otro idioma, como Español (México) o Español (Argentina), etc. Más abajo, vuelvo sobre esto…

Solo con este sencillo paso desaparece el subrayado rojo del texto corrido, pero, ¿qué hay del texto dentro de los cuadros de texto?

Texto corrido cambiado de idioma

¡Sigue con el molesto subrayado!

🙁

Desde mi punto de vista, no has terminado aún tu trabajo, porque:

  • Antes de entregar tu traducción al cliente, deberías pasar el corrector ortográfico y gramatical, y para eso, el texto no puede estar configurado como inglés.
  • Un documento con todo ese subrayado hace daño a la vista; bueno, quizás exagero un poco, pero estarás de acuerdo en que es molesto, ¿verdad? En más, estoy convencido de que entregar un trabajo así es arriesgarse a que tu cliente se lo tome mal…

odio

Pero no te preocupes, porque hay una forma automática de terminar al 100% tu trabajo y que tu cliente se enamore de ti para siempre (no no exagero).

amor

Sigue leyendo, por favor, que entramos en materia.

Cambio manual de idioma

Una forma de cambiar el idioma de un cuadro de texto sería:

  • seleccionar el cuadro de texto con el ratón (una tarea que a veces no es fácil);
  • cambiar el idioma a Español (según el mismo procedimiento indicado arriba).

No es complicado, pero si hay muchos cuadros de texto, deberías repetir este procedimiento para cada cuadro de texto, y ¡esto puede ser una labor muy, muy ingrata!

Afortunadamente, tenemos las macros, ya sabes, esas cosas que las escribes una vez, y las puedes ejecutar las veces que quieras.

Macro VBA para cambiar el idioma de todos los cuadros de texto

Como manualmente es una labor de chinos, veamos cómo hacerlo con una macro, en concreto, con una macro escrita en VBA, un lenguaje de programación que funciona en las aplicaciones del paquete ofimático Microsoft Office.

Es posible que puedas hacer una macro parecida para las aplicaciones LibreOffice, pero sinceramente, lo desconozco…

La primera macro que cambia automáticamente el idioma de los cuadros de texto es:

Sub CambiarIdiomaCajasDeTextoWord()
Dim forma As Shape
    'Desmarcar la casilla "Detectar idioma automáticamente"
    Application.CheckLanguage = False

    For Each forma In ActiveDocument.Shapes
        If forma.Type = msoTextBox Then
            forma.Select
            Selection.LanguageID = 3082

            'Marcar la casilla "No revisar la ortografía ni la gramática"
            Selection.NoProofing = False
        End If
    Next forma
End Sub

Descárgate esta primera macro.

  • La línea 1 es el nombre de la función CambiarIdiomaCajasDeTextoWord, que es la que deberás ejecutar dentro de Word para que te cambie automáticamente todos los cuadro de texto al idioma que quieras.
  • La línea 2 declara la variable forma de tipo Shape.
  • La línea 4 marca la casilla Detectar idioma automáticamente del cuadro de diálogo Idioma. Tienes arriba una captura de este cuadro de diálogo.
  • La línea 6 va pasando por todas las formas que haya en el documento de Word.
  • La línea 7 comprueba si la forma es un cuadro de texto. Si es así, sigue con la línea 8; si no es un cuadro de texto, se pasa a la siguiente forma del documento.
  • La línea 8 selecciona el cuadro de texto.

El corazón de la macro es la línea 9: Selection.LanguageID = 3082

Lo que hace esta línea 9 es asignar un código de idioma al cuadro de texto. El código 3082 corresponde al español (alfabetización internacional).

  • La línea 12 marca la casilla No revisar la ortografía ni la gramática del cuadro de diálogo Idioma (ya sabes que lo tienes arriba).

Si necesitas otro idioma, te voy a dar dos enlaces para que encuentres el código de tu idioma:

  1. http://msdn.microsoft.com/es-es/goglobal/bb964664.aspx
  2. https://msdn.microsoft.com/en-us/library/microsoft.office.core.msolanguageid.aspx

Si abres el primer enlace pues ver que el código 3082 corresponde con Español (alfabetización internacional), o que 2058 corresponde a Español (México). Solo tienes que cambiar tu macro con el numerito de tu idioma.

Fácil, ¿verdad?

Si abres el segundo enlace ves identificadores de idioma, pero al final es lo mismo: por ejemplo, la constate msoLanguageIDSpanishModernSort corresponde a Español (alfabetización internacional), o msoLanguageIDMexicanSpanish corresponde a Español (México). 

En la anterior macro VBA, podrías sustituir 3082 por msoLanguageIDSpanishModernSort y funcionaría exactamente igual.

Vale, pues de una u otra forma, ya puedes saber el numerito o el identificador que necesitas.

Bien, pues esto te da una idea de cómo funciona básicamente la macro para cambiar el idioma en Word.

Ahora, te daré la macro definitiva.

Macro VBA avanzada

La macro anterior funciona sin problemas, pero si quieres adornarla un poco más, aquí tienes otra macro:

' https://www.gonduana.com/cambiar-el-idioma-en-word-texto-corrido-cuadros-de-texto/

Sub CambiarIdiomaCajasDeTextoWord()
Dim forma As Shape
Dim cadena As String
Dim contador As Integer
Dim HoraInicio As Double, HoraFinal As Double

    'Guarda la hora de inicio de la macro VBA en la variable "HoraInicio"
    HoraInicio = Timer

    'Puesta a cer de la variable contador
    contador = 0
    'Desmarcar la casilla "Detectar idioma automáticamente"
    Application.CheckLanguage = False

    For Each forma In ActiveDocument.Shapes
        If forma.Type = msoTextBox Then
            forma.Select
            Selection.LanguageID = 3082

            'Marcar la casilla "No revisar la ortografía ni la gramática"
            Selection.NoProofing = False

            'Incrementar el contador de cuadros texto
            contador = contador + 1
        End If
    Next forma

    'Guarda la hora final de la macro VBA en la variable "HoraFinal"
    HoraFinal = Timer

    'Cadena de texto que nos mostrará al final
    'con el tiempo que ha tardado
    'y el número de cuadros de texto cambiados de idioma
    cadena = "Terminado el cambio de idioma." & Chr(10) & Chr(10) _
    & "Ejecutado en: " & HoraFinal - HoraInicio & " segundos" _
    & Chr(10) & Chr(10) _
    & "Cuadros de texto cambiados: " & contador

    MsgBox (cadena)
End Sub

Comparada con la anterior, esta macro simplemente te avisa de que ha terminado y te muestra un mensaje informativo con:

  • el tiempo que ha tardado;
  • el número de cuadros de texto que ha cambiado.

Hice una prueba con un documento de 162 cuadros de texto, y esta macro los cambió todos en 11 segundos.

Como prueba, aquí tienes la captura de pantalla:

macro VBA para cambiar el idioma en Word

Nota importante: al igual que la macro para cambiar el idioma en PowerPoint, esta macro tampoco funcionará en los cuadros de texto que estén agrupados; se los saltará y cambiará solo los cuadros de texto que estén desagrupados.

Si tienes una idea de cómo mejorar este aspecto, no dudes que estaríamos todos muy contentos de que lo compartieras…

🙂

Preparar y ejecutar la macro

Si ya sabes cómo ejecutar macros, puedes saltarte esta sección; si no, te propongo un procedimiento para:

  1. preparar la macro;
  2. ejecutar la macro.

1.- Preparar la macro

Primero copia el código de la macro al Portapapeles de Windows (CTRL+C). Ya sabes que tienes el código arriba (puedes elegir entre el básico y el avanzado).

Después abre la cinta Programador de Microsoft Word y pulsa el botón Visual Basic:

Programador - Visual Basic

Se abrirá ahora el Editor de Visual Basic para Aplicaciones:

plantilla Normal - pegar y guardar

Selecciona ahora la plantilla Normal a el panel izquierda. Haz doble clic sobre ThisDocument y pega la macro (CTRL+V) copiada antes en el documento que se abre a la derecha. Antes de salir, no olvides guardar con el botón de siempre (o con el atajo CTRL+S).

A partir de ahora, ya tienes preparada esta macro para cambiar el idioma de los cuadros de texto en cualquier momento.

2.- Ejecutar la macro

Para ejecutar la macro, en cualquier momento que la necesites, abre la cinta Programador de Microsoft Word y pulsa el botón Macros:

3 - Programador - Macros

(o bien pulsa el atajo de teclado ALT+F8), para que se muestre el siguiente cuadro de diálogo:

Ejecutar macro para cambiar el idioma en Word

En este cuadro de diálogo:

  1. en la lista Macros en, asegúrate de que seleccionas la plantilla Normal (donde está tu macro para cambiar el idioma);
  2. en Nombre de macro, asegúrate de que tienes seleccionada la macro llamada CambiarIdiomaCajasDeTextoWord (ten en cuenta, que en tu plantilla Normal puedes tener muchas macros);
  3. pulsa el botón Ejecutar;
  4. Al cabo de unos segundos, depende del número de cuadros de texto que tenga el documento, la macro terminará.

¡Y ya está!

Fácil, ¿verdad?

Nota sobre este procedimiento: Es buena idea guardar en la plantilla Normal las macros que vayas creando o encontrando por internet. La mala noticia es que no es nada raro que se dañe esta plantilla Normal (por motivos que desconozco, pero ciertamente sucede demasiado a menudo). Cuando sucede esto, perderás todo lo que tengas ahí guardado (estilos, macros, etc.). Por este motivo, te recomiendo tener las macros en un archivo TXT que haga las veces de copia de seguridad.

Si algún día se te daña la plantilla Normal (no se sabe cuándo, pero sucederá, eso no lo dudes), Word te avisará de ello y colocará automáticamente una plantilla Normal sin nada dentro; o sea, que habrás perdido todo lo que había dentro, pero ya sabes que en un minuto puedes volver a pegar las macros que tenías guardadas en la copia de seguridad.

Avisado estás…

Conclusiones de la macro VBA para cambiar el idioma en Word

Has visto lo fácil que es utilizar la macro para cambiar el idioma en Word de todos lo cuadros de texto del documento.

Es un proceso muy rápido, y en cuestión de segundos, la macro te hace algo que podrías tardar varios minutos si lo haces a mano.

Además, tienes la ventaja de que la macro no se salta ningún cuadro de texto y lo hace sin fallos.

Entradas relacionadas

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

Share on twitter
Share on linkedin
Share on facebook
Share on google
Share on pocket

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 »

Cómo borrar los retornos en Word

5/septiembre/2019

¿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

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, productividad Etiquetado como: VBA, Word

Comentarios

  1. Jesús Prieto dice

    19/mayo/2015 a las 2:11 pm

    A ver, me preguntan que cómo sería la macro que cambia también el idioma en el texto corrido, para que la macro cambie el idioma automáticamente tanto los cuadros de texto como el texto corrido.

    Pues bien, sería cuestión de añadir estas 3 líneas al código anterior:

    Selection.WholeStory
    Selection.LanguageID = 3082
    Selection.NoProofing = False

    Por ejemplo, se puede insertar después de la línea: Application.CheckLanguage = False

    - La primera línea selecciona todo el texto corrido del documento. Equivale al atajo de teclado CTRL+E (o CTRL+A, si tienes la versión inglesa de Word).
    - La segunda línea de código cambia el idioma de la selección, es decir, todo el texto corrido, a español de España.
    - La tercera línea ya la explicamos arriba, en el artículo.

    Responder
    • JL Posadilla dice

      19/mayo/2015 a las 4:53 pm

      Gracias Jesús, funciona perfectamente. Eres un as !!

      José Luis

      Responder
      • Jesús Prieto dice

        20/mayo/2015 a las 10:02 am

        😉

        Era fácil…

        Responder
  2. Nancy Torrents dice

    6/mayo/2017 a las 3:24 pm

    Me ha gustado muchísimo el que haya compartido este conocimiento porque tengo problemas para traducir otro idioma diferente del español. Soy analfabeta en el asunto. He seguido sus pasos pero no me funciona ni en Word o Powerpoint 2013. Qué me aconseja?

    Responder
    • Jesús Prieto dice

      6/mayo/2017 a las 9:02 pm

      Hola, Nacy:

      En este enlace tienes los códigos que necesitas para todos los idiomas.

      https://support.office.com/es-es/article/C%C3%B3digos-de-idioma-de-los-archivos-de-un-idioma-espec%C3%ADfico-16102229-37c5-4ad5-92b1-0438f6304114

      ¡Suerte!

      … Jesús Prieto …

      Responder
  3. Luisa D´Angelo dice

    21/agosto/2017 a las 6:45 pm

    Hola Jesús, ¿cómo estás? Acabo de conocer tu blog y me ha parecido maravilloso. Soy traductora Freelance desde hace 5 años y durante este tiempo he desarrollado mi propia lista de herramientas de word que nos ayudan mucho a ahorrar tiempo durante la traducción pero todavía me falta mucho por aprender. Intenté usar la macro para cambiar el idioma de los cuadros te texto y no me funcionó, me sale el siguiente aviso: Compile error:Method or data member not found. AL hacer clic en OK, me marca con una flecha amarilla la primera línea de los comandos: Sub CambiarIdiomaCajasDeTextoWord(). La verdad es que nunca he hecho ninguna macro y estoy muy perdida. Además utilizo una laptop Mac que siempre tienen algunos problemas de incompatibilidad.

    Muchas gracias por tu ayuda, Luisa D´Angelo

    Responder
    • Jesús Prieto dice

      22/agosto/2017 a las 12:03 pm

      Hola, Luisa:

      No sé el motivo de que no te funcione la macro. Lo cierto es que otros comentarios del artículo dicen lo mismo: que no les funciona.

      Quizás sea algo de Office para Mac, pero de verdad que lo desconozco y no lo puedo comprobar porque no tengo un Mac…

      Un abrazo.

      … Jesús Prieto …

      Responder
  4. enrique luengo dice

    14/diciembre/2017 a las 11:14 pm

    Jesús, hoy he descubierto tu página (buscando un uso profundo de comodines de Word), y me ha parecido muy esclarecedora y muy bien documentada.

    En "pago" 😉 a tu esmero en la redacción de los artículos, resuelvo tu duda sobre como solucionar el problema con los shapes agrupados, en este documento:

    Básicamente es la función CrawlShapes la que soluciona la papeleta.

    Por mi parte, estoy intentando hacer las traducciones directamente desde el Excel sin llamar a las API de Ggle ni abrir instancia de exploradores o por HttpRequest,... recurriendo a Word por entre medias. No lo he visto documentado en ningún sitio, tras andar consultando al buscador.

    Si consigo hacerlo funcionar (tengo problemas haciendo que cambie el idioma de la selección) ya publicaré la respuesta a este mensaje.

    Un saludo

    Responder
    • enrique luengo dice

      15/diciembre/2017 a las 12:49 am

      me autorespondo... como bobo entendí que Office era capaz de traducir textos mediante VBA, cuando lo que se explica en este artículo (y en todos los artículos que he consultado) es que sólo se cambia el LENGUAJE DEL DOCUMENTO u OBJETO en cuestión (la traducción hay que hacerla a parte o mediante el botón propio del menú de Office), para que no proteste por problemas de idioma.

      No era capaz de activar un supuesto cambio en los textos, hasta que me he dado cuenta que el método .LanguageID no hace referencia a la función de traducción que sí está implementada en Office... pero que no queda expuesta con el grabador de macros ni consigo documentación para ejecutarlo de forma automatizada.
      Al menos en este Blog se especifica cláramente que es "cambio del idioma", porque en la mayoría de consultas que explican esto mismo, abusan de la expresión "traducción", llevando a engaño.

      Conclusión, que la única solución que hasta ahora encuentro son macros para realizar consultas mediante las API de Google o de Bing.

      Una ruina de exploración :(, pero algo se aprende

      Saludos

      Responder
    • Jesús Prieto dice

      15/diciembre/2017 a las 7:57 am

      Hola, Enrique:
      Gracias por la función CrawlShapes, la probaré a ver qué tal…
      Sobre lo que estás buscando, traducir en Excel, lo he visto alguna vez, aunque ahora no lo encuentro. Creo recordar que lo traducía con Bing.
      Una posibilidad que supongo que ya has visto es:
      https://excelsignum.com/2016/11/26/funcion-para-traducir-texto-en-nuestra-hoja-excel/
      Para traducir textos, utiliza VBA de Excel y aprovecha la funcionalidad COM de Internet Explorer y los servicios web de Google Translate (sin su API, que sería de pago). Aunque utiliza un navegador para traducir, no lo abre (uno de tus requisitos), no sé si te habías dado cuenta… Sí que es necesario tener instalado Internet Explorer en el PC, que es lo habitual todavía.

      P.S.: No lo he probado nunca, pero creo recordar que con algo que se llama Google Translator Kit (o algo parecido) se pueden traducir documentos de Word. Quizás puedas aprovecharlo para traducir en Excel…
      No sé si respondo a tu búsqueda, pero ahí la tienes. ¡Suerte!
      A lo tonto estoy escribiendo un nuevo artículo de traducción automática. 🙂
      … 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 *

 

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

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

  • 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
  • Los comodines de Excel
  • Novedades en el buscador de la RAE
  • Mis macros de Word para ordinales (Marisa E Schieda)
  • Mis macros de Word para abreviaturas de “número”
  • Los 10 principios del comercial

Nube de etiquetas

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

Categorías

  • adaptación (3)
  • blog (10)
  • comercial (24)
  • contabilidad (2)
  • español (5)
  • etimología (4)
  • fiscalidad (2)
  • hardware (3)
  • macros (42)
  • marketing (8)
  • noticias (4)
  • productividad (42)
  • seguridad (5)
  • social (9)
  • software (41)
  • TAO (39)
  • terminología (9)
  • traducción automática (2)
  • traducción literaria (1)
  • tradumática (38)
  • vídeo (17)
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