NorfiPC
NorfiPC » Útiles Word Excel » Códigos para macros

Códigos para macros de Visual Basic (vba) en Excel y Word


Actualizado: 28 de marzo del 2023
Por: Norfi Carrodeguas
Codigos para crear macros copiando y pegando en el editor de VBA en word y excel. Ejemplos prácticos. Cambiar el formato de párrafos, imprimir, insertar imágenes, comentarios y muchas otras acciones, que en ocasiones requieren varios pasos.
Códigos de ejemplos para macros de Word en Visual Basic
Sencilla recopilación de algunos códigos para crear macros en Word, Excel y otras aplicaciones incluidas en la suite de Microsoft Office.
Solo es necesario copiarlos y pegarlos en el editor de VBA incluido en estos programas, para crear los macros.
El objetivo es facilitar la creación de macros que pueden resultar muy útiles para la ejecución de diversas tareas.
También incentivar y estimular los que les agrada crear sus propias aplicaciones y configurar el programa que utilizan de forma personal.


¿Cómo usar los códigos para crear las macros?


En otro artículo publicado en este sitio se explica en detalle el proceso de creación de las macros en los programas de Microsoft Office de las dos formas posibles, usando la "Grabadora de macros" y el "Editor de Visual Basic".
En esta página solo iremos publicando y compartiendo los códigos que llegan a nuestras manos o creamos para nuestro uso personal, que se pueden insertar directamente en el editor de VBA y así crear macros.
Solo es necesario copiar el código, abrir el editor usando las teclas ALT + F11 y pegar.
Pegar los códigos en el editor de Visual Basic para crear macros
Posteriormente abrir la ventana "Macros" (teclas ALT + F8), seleccionar la macro creada y ejecutarla.
Lógicamente es posible asignar a cada macro un icono y situarlo en la Barra de acceso rápido o una combinación de teclas.


Códigos para crear macros en Word


Ejemplos de acciones elementales


Algunos de los macros pueden ser sumamente sencillos.
Experimenta con los siguientes códigos y modifícalos a tu gusto.
Cualquier cambio hecho en el editor, toma efecto inmediatamente.
Para conocer más de la estructura del código, puedes crear macros usando la "Grabadora de macros" y posteriormente observar el código en el "Editor de VBA".

Cambiar formato

El siguiente macro cambia el formato del texto seleccionado.
Sub for1()
' Cambiar tamaño de la fuente
Selection.Font.Size = 20
' Cambiar el tipo de fuente
Selection.Font.Name = "Britannic Bold"
' Poner texto en negrita
Selection.Font.Bold = wdToggle
' Poner texto en italic
Selection.Font.Italic = wdToggle
' Darle el color rojo
Selection.Font.Color = wdColorRed
End Sub
Para alinear el texto usa:

' Alinear texto a la izquierda:
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
' Alinear texto a la derecha:
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
' Centrar texto:
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
' Texto justificado completo
Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify

Para seleccionar todo el texto usa:
Selection.WholeStory

Cambiar estilo del texto

Otro método recomendado:
Public Sub Editar() 
 With Selection.Font 
 .Name = "Arial" 
 .Size = 10 
 End With 
End Sub

Insertar texto

Para insertar cualquier texto predeterminado en el punto de inserción del cursor del ratón usa:
Sub SustT()
Selection.TypeText Text:="este texto"
End Sub


Códigos para copiar y pegar


Para copiar cualquiera de los códigos da un clic en el cuadro de texto que los contienen y usa las teclas CONTROL + C.
En los códigos las líneas antecedidas de una comilla (‘), en el editor se muestran de color verde, son solo comentarios.

Imprimir todos los documentos abiertos

Macro que nos permite enviar a la impresora de una vez, todos los documentos de Word que tengamos abiertos.
Sub ImprimirTodo()
Dim doc As Document
For Each doc In Documents
doc.PrintOut
Next doc
End Sub


Vista previa de impresión al 100%

En las versiones recientes de Word al decidir imprimir un documento se abre la ventana de vista previa con la barra de opciones a la izquierda, por lo que la vista previa del resultado final de la impresión se muestra reducida.
Usando el siguiente macro la vista previa se mostrará al 100%, pasando las opciones de impresión a la parte superior como en versiones anteriores.
Sub ImpPrevia()
ActiveDocument.PrintPreview
ActiveWindow.View.Zoom = 100
End Sub



Imprimir todos los documentos que están en una carpeta

Macro para imprimir todos los documentos que se encuentren en el interior de una carpeta especifica.
Los que imprimen regularmente solo necesitan copiar a dicha carpeta, creada para ese fin los documentos.
Se debe especificar el código la ruta absoluta a dicha carpeta.
Sub ImpAllCarpeta()
   Dim sMyDir As String
   Dim sDocName As String
   'La ruta a la carpeta.
   sMyDir = "C:\Users\NombreDeUsuario\Desktop\Carpeta"
   sDocName = Dir(sMyDir & "*.DOC")
   While sDocName <> ""
      Application.PrintOut FileName: = sMyDir & sDocName
      sDocName = Dir()
   Wend
End Sub


Pegar texto sin formato

Al copiar y pegar texto desde una página web a un documento de Word, se mantendrá el formato de origen, lo que puede ser molesto. Es necesario antes de pegar escoger: "Pegado especial > Texto sin formato".
La siguiente macro permite hacer lo anterior con una sola instrucción o botón.
Sub PegarTSF()
On Error GoTo oops
Selection.PasteSpecial _
DataType:=wdPasteText, _
Placement:=wdInLine
End
oops:
Beep
End Sub



Insertar imágenes desde una cámara o escáner

En las versiones recientes de Word no se incluye la opción: "Insertar –> Imagen –> Desde escáner o cámara".
Es necesario abrir previamente la Galería Multimedia, agregar la imagen y solo después en Word usar: "Insertar –> Imágenes prediseñadas".
La siguiente macro permite insertar directamente cualquier imagen directamente desde una cámara o un escáner conectado, al igual que en Office 2003.
Sub IImagen()
On Error Resume Next
Application.CommandBars.FindControl(ID:=1764).Execute
End Sub


Encerrar texto entre comillas

Inserta comillas al comienzo y final del texto seleccionado.
De forma similar se puede usar la macro para encerrar texto entre comillas simples, paréntesis, llaves o corchetes, con solo modificar el código.
Sub Comillas()
    Selection.InsertAfter """"
    Selection.InsertBefore """"
End Sub


Encerrar texto entre paréntesis

Inserta paréntesis al comienzo y final del texto seleccionado.
Sub Parentesis()
    Selection.InsertAfter ")"
    Selection.InsertBefore "("
End Sub



Cambiar el formato al texto entre paréntesis

Poner en italic y dar color rojo al texto que se encuentre encerrado entre paréntesis.
Sub TeP()
Dim char As Object
Dim bIn As Boolean
bIn = False
Selection.HomeKey Unit:=wdStory
For Each char In ActiveDocument.Characters
    If char = "(" Then
       bIn = True
    ElseIf char = ")" Then
           bIn = False
           Selection.Font.Italic = wdToggle
           Selection.Font.Color = wdColorBlack
    End If
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    If bIn Then
       Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
       Selection.Font.Italic = wdToggle
       Selection.Font.Color = wdColorRed
    End If
Next
End Sub


Listar todas las fuentes instaladas

Interesante macro que permite crear en un nuevo documento un listado de todas las fuentes instaladas en el sistema, con una vista previa de cada una.
Lista útil para tener a mano o imprimir.
Sub ListarFuentes()
Dim J As Integer
Dim FontTable As Table
Set NewDoc = Documents.Add
Set FontTable = NewDoc.Tables.Add(Selection.Range, FontNames.Count + 1, 2)
With FontTable
    .Borders.Enable = False
    .Cell(1, 1).Range.Font.Name = "Arial"
    .Cell(1, 1).Range.Font.Bold = 1
    .Cell(1, 1).Range.InsertAfter "Font Name"
    .Cell(1, 2).Range.Font.Name = "Arial"
    .Cell(1, 2).Range.Font.Bold = 1
    .Cell(1, 2).Range.InsertAfter "Font Example"
End With
For J = 1 To FontNames.Count
    With FontTable
        .Cell(J + 1, 1).Range.Font.Name = "Arial"
        .Cell(J + 1, 1).Range.Font.Size = 10
        .Cell(J + 1, 1).Range.InsertAfter FontNames(J)
        .Cell(J + 1, 2).Range.Font.Name = FontNames(J)
        .Cell(J + 1, 2).Range.Font.Size = 10
        .Cell(J + 1, 2).Range.InsertAfter "ABCDEFG abcdefg 1234567890"
    End With
Next J
FontTable.Sort SortOrder:=wdSortOrderAscending
End Sub


Insertar un comentario

Permite insertar un comentario predeterminado en el punto de inserción o sea donde se situe el cursor del ratón en un documento.
Sustituye en el código "COMENTARIO" por lo que debe aparecer.
Sub Coment()
   Dim MyText As String
   Dim MyRange As Object
   Set MyRange = ActiveDocument.Range
   MyText = "COMENTARIO"
  Selection.Comments.Add Range:=Selection.Range, Text:=MyText
End Sub


Insertar un símbolo determinado en un documento

Usa la macro siguiente para insertar cualquier símbolo en el punto de inserción.
En este caso se inserta un corazón, pero puede hacerse con cualquier otro símbolo especificando en el código su número decimal y la fuente de ser necesario.
Es posible insertar caracteres Unicode.
Usa la herramienta Símbolos de Word para identificarlos.
Sub InsertCorazon()
   Dim MyRange As Object
   Set MyRange = ActiveDocument.Range
   Selection.InsertSymbol CharacterNumber:=9829, _
      Font:="Arial", Unicode:=True
End Sub


Ventana de alerta con la fecha de hoy

Sub Fecha()
    MsgBox "Hoy es: " & Format(Now(), "dd-mm-yyyy")
End Sub


Insertar fecha en el documento

Sub Fecha()
    ActiveCell.Value = Now
End Sub
Despues es necesario definir el formato de la fecha en Formato de celdas.

Sub IFecha2()
Dim MyRange As Object
   Set MyRange = ActiveDocument.Range
   Selection.InsertDateTime DateTimeFormat:="MMMM dd, yyyy", _
   InsertAsField:=False
End Sub

Macro para ir a un lugar del documento

Es necesario insertar previamente un marcador en el lugar exacto.
Posteriormente crear el macro indicando el nombre dado al marcador, en este ejemplo "inicio".
Sub inicio()
    Selection.GoTo What
End Sub

Macro para ir al inicio o final del documento

El siguiente macro permite ir al inicio del documento, de la misma forma que si presionamos la tecla HomeKey del teclado.
Para ir al final del documento usa EndKey.
Sub HomeKey()
    Selection.GoTo What
End Sub

Ejecutar los macros de forma automática


Podemos crear macros que se ejecuten automáticamente, son llamadas AutoMacros.
Para eso es necesario crearlas y darles un nombre específico.
Son las siguientes:
AutoExec. Se ejecuta al abrir Word.
AutoExit. Se ejecuta al cerrar Word.
AutoOpen. Se ejecuta cuando se abre un documento desde la plantilla donde tenemos la macro.
AutoClose. Se ejecuta cuando se cierra un documento desde la plantilla donde tenemos la macro.
AutoNew. Se ejecuta cuando se crea un nuevo documento desde la plantilla donde esta la macro.

Mas información en Microsoft sobre el lenguaje VBA usado en Macros: Getting started with VBA in Office

Páginas relacionadas



Sobre el autor:

Norfi Carrodeguas es el fundador y webmaster del sitio web Norfipc, creado en el año 2010. Norfi es un ingeniero informático y desarrollador web cubano. Con más de 14 años de experiencia en la publicación en internet, comparte su tiempo con su consultoría SEO. Más información sobre el autor.

Comparta esta página
Facebook
Twitter

Sígueme en las redes sociales


Norfipc en Facebook Norfipc en Twitter Canales RSS con las últimas publicaciones

 
 
Inicio | Mapa del sitio | Buscar | Sobre mí