Using Microsoft Word macros (Visual Basic) to format your posts || Usando las macros de Microsoft Word (Visual Basic) para formatear

in Develop Spanish2 months ago

In my beginnings, I used to look for alternatives or ways to format my posts in a more comfortable or quicker way. I would look for a way to build all the code together with the content outside the editor, and then just paste it there and publish, I used Microsoft Word very often to do this. This led me to get into one of the less used tools of Word: macros.

En mis inicios, solía buscar alternativas o formas de formatear mis posts de manera más cómoda o rápida. Buscaba la forma de construir todos los códigos junto con el contenido fuera del editor, para luego solo pegar allí y publicar, usaba Microsoft Word muy a menudo para hacer esto. Esto me llevó a adentrarme en una de las herramientas menos utilizadas de Word: las macros.

formateo macro word.gif

Although nowadays I don't use or use very little Word to perform the formatting of my posts, I think it's worth showing the process of how to automatically enter the codes to the content of your post for Hive using Word, just as you do in the editor. This can be useful if you don't have an internet connection at a certain time to access the editor, and you want to have the post ready for publication later.

In this post I will focus on some basic codes for the visual effect of the text, such as bold, italics, titles or subtitles. Also, I will use the HTML code instead of the Markdown, although this is not important when building the code of the macros in Visual Basic.

Aunque hoy en día ya no utilizo o utilizo muy poco Word para realizar el formateo de mis posts, pienso que vale la pena mostrar el proceso de cómo introducir los códigos automáticamente al contenido de tu post para Hive mediante Word, tal como lo haces en el editor. Esto puede serte útil si no tienes conexión a internet en determinado momento para acceder al editor, y quieres tener el post listo para publicarlo posteriormente.

En esta publicación me enfocaré en algunos códigos básicos para el efecto visual del texto, como lo son la letra negrita, la letra cursiva, títulos o subtítulos. Además, utilizaré el código HTML en lugar del Markdown, aunque esto no tiene importancia a la hora de construir el código de las macros en Visual Basic.

Do you have to know how to program in Visual Basic?

Not necessarily. My knowledge in Visual Basic is quite limited, and I built these macros by trial and error through the "Record Macros" option (bottom left button):

¿Hay que saber programar en Visual Basic?


No necesariamente. Mis conocimientos en Visual Basic son bastante limitados, y estas macros las construí mediante prueba y error a través de la opción de "Grabar Macros" (botón abajo a la izquierda):

grabar macro word.gif

This option allows you to "record" the actions you perform in a macro that when you review it then tells you the codes that are behind the actions you have done.

For example, we will activate this option and then enter the necessary code to set a bold format in HTML, which would be <b></b>. Note that the name of the macro is "Macro1":

Esta opción te permite "grabar" las acciones que realizas en una macro que al revisarla luego te indica los códigos que están detrás de las acciones que has hecho.

Por ejemplo, activaremos esta opción y luego introduciremos el código necesario para establecer un formato negrita en HTML, el cual sería <b></b>. Note que el nombre de la macro es "Macro1":

grabar macro word negrita.gif

When you finish recording you can check the macro and see that the codes needed to automatically write the given code were written in it. It is not necessary to write code from scratch. You just need to check the code a little bit to see which parts of it you can modify to make them useful. In the following animation you can see how to get there:

(Another way to quickly access Visual Basic is by pressing the keys ALT+F11).

Al terminar de grabar puedes revisar la macro y ver que los códigos necesarios para escribir automáticamente el código dado quedaron escritos en ella. No es necesario escribir códigos desde cero. Solo hace falta revisar un poco el código para intuir que partes del mismo puedes modificar para que te sean útiles. En la siguiente animación se observa cómo llegar allí:

(Otra forma de acceder rápidamente al Visual Basic es pulsando las teclas ALT+F11).

grabar macro word visual basic.gif

The code obtained in the Visual Basic editor is the following:

El código obtenido en el editor de Visual Basic es el siguiente:

Sub Macro1()
'
' Macro1 Macro
'
'
    Selection.TypeText Text:="<b></b>"
End Sub

What we need is that we can select a word or sentence, and when we run the macro with a toolbar button, the <b> and </b> are placed on both sides of the word or sentence (just like in the editor).

To do this, we will assign any variable to the selected text. We will call the selection "x", that is:

x=Selection.Text

The latter assigns the letter "x" to the text we have previously shaded.

Then, we will add this to the macro obtained above. In this way, the macro will not only enter the HTML code for bold, but also what we have previously selected or shaded. We will use "&" to join or concatenate the text to be entered:

Lo que necesitamos es que podamos seleccionar una palabra u oración, y al ejecutar la macro con un botón en la barra de herramientas, se coloque el <b> y el </b> a ambos lados de la palabra u oración (justo como en el editor).

Para ello, asignaremos una variable cualquiera al texto seleccionado. Llamaremos "x" a la selección, es decir:x=Selection.Text

Esto último, asigna la letra "x" al texto que hemos sombreado previamente.

Luego, añadiremos esto a la macro obtenida arriba. De esta manera, la macro no solo introducirá el código HTML para negrita, sino también lo que hemos seleccionado o sombreado previamente. Haremos uso de "&" para unir o concatenar el texto a introducir:

Sub Macro1()
'
' Macro1 Macro
'
'
    x = Selection.Text
    Selection.TypeText Text:="<b>" & x & "</b>"
End Sub

Ready. We only need to place this macro on a button in the Quick Access Toolbar at the top. That process is illustrated in the following animation:

Listo. Solo debemos colocar esta macro en un botón en la barra de herramientas de acceso rápido en la parte superior. Ese proceso se ilustra en la siguiente animación:

grabar macro word boton.gif

We must take into account that we cannot call the button or the macro with the name "Bold" because otherwise Word will confuse it with the already existing default button.

Debemos tener en cuenta que no podemos llamar al botón o a la macro con el nombre "Negrita" porque sino Word lo confundirá con el botón ya existente por defecto, hay que colocar un nombre diferente.

Results

Let's see the application of this button in a text where we want to apply the bold font format to a word or a sentence:

Veamos la aplicación de este botón en un texto donde queremos aplicar el formato de letra negrita a una palabra o a una oración:

grabar macro word demostracion.gif


Other formats

To achieve other formats, the code <b></b> must be changed to the corresponding code. Just copy the previous macro and rename it. The codes that I will place below are in HTML but you can also use the Markdown codes (except for some).

Para lograr otros formatos, se debe cambiar el código <b></b> por el código correspondiente. Solo se debe copiar la macro anterior y cambiarle el nombre. Los códigos que colocaré abajo son en HTML pero también se pueden usar los de Markdown (a excepción de algunos).


Italic

Change <b></b> for <i></i>:

Sub italic()

    x = Selection.Text
    Selection.TypeText Text:="<i>" & x & "</i>"
End Sub

Titles

<h1></h1> , <h2></h2>, ...

Sub Titles()

    x = Selection.Text
    Selection.TypeText Text:="<h1>" & x & "</h1>"
End Sub

Subtitles

<sub></sub> or <sup></sup> :

Sub Subs()

    x = Selection.Text
    Selection.TypeText Text:="<sub>" & x & "</sub>"
End Sub

Red

<div class=phishy></div>

Visual Basic:

Sub red()

    x = Selection.Text
    Selection.TypeText Text:="<div class=phishy>" & x & "</div>"
End Sub

And so on for any other format, such as strikethrough (<strike></strike>) or pre-formatting (<pre></pre>).

Soon I will share other ways to take advantage of the Visual Basic macros in Word to format your content. I hope this publication will be very helpful to you. Leave your comment.

Y así de igual manera para cualquier otro formato, como por ejemplo, la letra tachada (<strike></strike>) o el preformateado (<pre></pre>).

Próximamente compartiré otras formas de aprovechar las macros de Visual Basic en Word para realizar el formateo de tu contenido. Espero que esta publicación te sea de mucha ayuda. Deja tu comentario.

Translated to English with the help of DeepL.com.


¡Gracias por visitar!..¡Thanks for visiting!
Sort:  

Nunca comprendí el uso de Macros en Visual...de hecho reprobé esa materia (lenguaje orientado a objetos) en la universidad, tuve que aprobarla en Verano.
Saludos..!

De hecho, en la universidad tampoco entendí mucho de Visual Basic, aprendí un poco por mi cuenta y prueba y error. Y aún todavía hoy domino VB muy superficialmente. Es muy práctico para Excel. Para Word su uso es más extraño pero aquí ves una aplicación util. Saludos!

Realmente interesante, se un poco de VBA para excel aunque nunca lo he intentado en Word. Actualmente sigo usando word por comodidad, para mantener respaldo de cada post que hago pero me he grabado de memoria los códigos que uso :) seria interesante no tener que teclear para tanto. Gracias por compartir esta útil información ;)

me he grabado de memoria los códigos que uso

En Word puedes grabar todos los códigos en una macro y luego colocarlos con un botón. También es útil si olvidas alguno.

También aveces respaldo el post en Word. Luego creo otro post sobre otras cosas que se pueden hacer con las macros de Word, gracias por visitar y comentar, saludos.

Excelente post, grande la forma de aprovechar tus conocimientos de Visual Basic para sacarle provecho a Word. Ahora me pregunto si en Google Docs puedo hacer eso tambien ya que es donde suelo escribir mis post normalmente

Saludos @developspanish, gracias por visitar. La verdad desconozco si Google Docs posee esta función, creo que no posee macros, pero quizás pueda hacerse con una extensión o algo por el estilo.

Excelente post y presentación! La verdad, a pesar de todos los años que he usado Word, nunca me he metido profundamente en la herramienta y jamás he usado macros, así que esta contribuición me resulta muy interesante. Gracias!

Hola @drrune gracias por tu apreciación, la verdad las macros en Word no son muy conocidas tal como mencionas, es una opción interesante para programar algunas cosas. Saludos,

Excelente...