codigo macro.thumbnail Macros para traductoresUna macro es un conjunto de instrucciones que se ejecutan de principio a fin con un propósito determinado y, normalmente, repetitivo. Por ejemplo, en un proceso de control de calidad se realizan siempre más o menos las mismas tareas: pasar el corrector ortográfico, comprobar que no haya dobles espacios, verificar la terminología usada con la preferida por el cliente, etc.

Como ya se comentó en este blog, es posible automatizar todo este tipo de tareas repetitivas gracias a las macros. Hay muchos programas que permiten el uso de macros, e incluso se pueden crear macros a nivel de sistema operativo con programas como Do It Again o AutoHotkey para automatizar cualquier comando posible, si bien tengo que reconocer que no funcionan todo lo bien y rápido que uno desearía.

Sin embargo, quizás el uso más popular de las macros se encuentra en las aplicaciones de Microsoft Office como Word, Excel y Access. Originalmente se utilizaba el lenguaje BASIC para programar macros, pero con el tiempo evolucionó a Visual Basic for Applications (VBA), un lenguaje de programación para aplicaciones de Office en el que se puede hacer prácticamente todo.

De hecho, una buena manera de aprender este lenguaje es grabando macros de tareas sencillas como aplicar un formato especial a un párrafo o bien crear una tabla determinada y ver el código de la macro. Para grabar una macro debemos ir a Herramientas -> Macro -> Grabar macro; para ver el código, debemos abrir el Editor de Visual Basic del mismo menú. Por supuesto, el código será muy específico y seguramente nada optimizado, pero servirá para aprender.

Aunque yo recomiendo aprender un lenguaje de programación poco a poco si no se tiene experiencia previa en programación, es cierto que se puede aprender mucho de los abundantes ejemplos en Internet, sobre todo si no queremos profundizar mucho en el lenguaje. Por ejemplo, en Trucos de Excel en español, Programar en Access VBA y los apuntes de Marcela Genero Bocco de VBA para Excel es posible encontrar un sinfín de programas de ejemplo de este lenguaje de programación. Eso sí: nada mejor que la excelente ayuda de Microsoft incluida en el Editor de Visual Basic para conocer todos los comandos posibles.

Yo ya he hecho mis pinitos con VBA y he comprobado cómo con tiempo y ganas se pueden crear verdaderas aplicaciones para Word usando el propio Word. Además, conocer este lenguaje puede sacarte de más de un apuro en el trabajo. Os cuento un caso real que tuvo lugar hace poco en mi trabajo.

Resulta que teníamos una enorme hoja de cálculo de Excel en la que solo se tenían que traducir las celdas de una determinada columna cuyo texto estuviera en rojo. Lo que hizo el traductor fue copiar la columna que tenía que traducir a una hoja aparte y así poder utilizar una herramienta de traducción cómodamente. Sin embargo, nadie se percató de que el archivo original tenía protegidas las celdas que no se debían traducir por contraseña, por lo que era imposible copiar y pegar la hoja traducida. Ya no se trataba de perder una hora copiando y pegando, pues el archivo tenía miles de filas; hubiera sido necesaria una jornada completa para ello teniendo en cuenta que, como humanos que somos, podríamos haber cometido un error entre tanta operación de cortar y pegar.

Así pues, ni corto ni perezoso me puse a ver códigos de ejemplo por Internet para ver cómo podía leer de la hoja traducida las celdas rojas y pegarlas en las correspondientes celdas del archivo original. Este código fue el que finalmente me funcionó e hizo la operación en unos 5 segundos:

Sub macroReplace()

‘Declaramos las variables
Dim i As Long
Dim UltimaFila As Long

Dim codigo As String
Dim codigo2 As String
Dim valor As String

‘Calculamos el número de filas que hay en la hoja.
‘Restamos uno para no contar la fila de encabezados
UltimaFila = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count

‘Bucle para repetir una serie de instrucciones y aumentar el número
‘de celda
For i = 1 To UltimaFila

‘La contraseña parece que impide utilizar correctamente la propiedad Cells,
‘por lo que tenemos que especificar las columnas:
‘(A) es la primera y (K) donde está el texto que hay que traducir

codigo = “K” & i
codigo2 = “A” & i

‘Nos situamos en la celda y si el color de la fuente es rojo
‘copiamos el valor del texto traducido que hay en la segunda hoja

Range(codigo).Select

If Selection.Font.ColorIndex = 3 Then

valor = Worksheets(“Sheet2″).Range(codigo2).Value
Range(codigo).Value = valor

End If

Next

End Sub

Espero que los comentarios indicados antes de cada línea de código sean suficientes para comprender lo que hace la macro. Como veréis, me he basado en los ejemplos de las macros de filas de Trucos de Excel en español. Al igual que con LaTeX, tener conocimientos sobre VBA es un plus para nosotros como traductores.

Etiquetas: access, excel, macros, office, traducción, vba, word

7 comentarios para “Macros para traductores”

  1. Ana dice:

    La verdad es que los macros son bastante útiles ya uqe son más visuales y más accesibles, pero es una forma bastante fácil de que te entre algún virus. Y lo de programar…buf, es muy difícil, aunque supongo una vez aprendido el lenguaje es pan comido, aunque yo no sabría por dónde empezar, la verdad…

    >>> ¿Te gusta este comentario? Thumb up 0

    [Responder a este comentario]

  2. J. dice:

    Sí que conviene echarle un vistazo a estas cosas, que para estar todo el día con el Word, algunos somos bastante torpones ;)

    >>> ¿Te gusta este comentario? Thumb up 0

    [Responder a este comentario]

  3. [...] Comentarios (RSS) « Macros para traductores [...]

    >>> ¿Te gusta este comentario? Thumb up 0

  4. [...] el formato de lo que hemos copiado y solo queremos texto plano. Worker’s Edge nos ofrece una macro para copiar texto sin formato en Word, al igual que el consejo de utilizar una pequeña aplicación [...]

    >>> ¿Te gusta este comentario? Thumb up 0

  5. [...] el formato de lo que hemos copiado y solo queremos texto plano. Worker’s Edge nos ofrece una macro para copiar texto sin formato en Word, al igual que el consejo de utilizar una pequeña aplicación [...]

    >>> ¿Te gusta este comentario? Thumb up 0

  6. Rubén dice:

    Hola Pablo

    Enhorabuena por el blog. Ya se ha convertido en una de mis referencias preferidas. Tanto es así que lo cito en mi página Web http://www.wordbonds.es y les he pasado la referencia de esta entrada a mis alumnos de un posgrado en tradumática.

    Saludos

    >>> ¿Te gusta este comentario? Thumb up 0

    [Responder a este comentario]

  7. [...] Sin embargo, el mayor atractivo de trabajar como programador y técnico de TI en una empresa de traducción es la cantidad de retos que se te plantean semanalmente y lo mucho que aprendes cada día. No se trata de buscar una solución terminológica que probablemente no recuerdes en el futuro para un texto científico o técnico, sino de idear una solución a un problema real que puede llevarte al éxito o al fracaso o incluso a que tengas que rechazar un encargo. Y parece que no, pero es posible que un día cualquiera tengas que lidiar con un problema de copiar y pegar en una tabla en función del color del texto de una columna y que lo puedas solucionar rápidamente —y, por tanto, que sea rentable— con una pequeña macro de Excel. [...]

    >>> ¿Te gusta este comentario? Thumb up 0

Escribe un comentario

Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CommentLuv badge