El Editor de Visual Basic, o Editor de VBA, forma parte del programa Microsoft Excel, este Editor nos permite crear, modificar o emplear Macros, las cuales nos permiten ampliar el funcionamiento por defecto de la funcionalidad de Excel.
Este editor es también conocido como VBE por sus siglas en ingles (Visual Basic Editor).

¿Cómo acceder al Editor de Visual Basic?
Para para poder acceder al Editor de Visual Basic se puede emplear la combinación de teclas ALT + F11, si bien esto nos permite ingresar y trabajar con el Editor de VBA, lo mejor es tener disponible una Ficha conocida como Ficha Programador o Ficha Desarrollador, la cual contiene mas opciones.
Primer Ejercicio
Mostrando un mensaje
Sólo tienes que insertar en tu macro el comando MsgBox. En el ejemplo siguiente:
MsgBox "texto del mensaje"
Pasos:
ALT + F11
- Clic en el menú herramientas
- Clic en macros
- Digitar el nombre de la macro y clic en crear
-Pegamos el código o lo digitamos
Código: MsgBox "mi nombre es..."
- Cerrar.
-Ejecutar la macro
Segundo Ejercicio
Escribir la fecha y la hora actual en la hoja de cálculo. El siguiente ejemplo inserta estos datos en la celda A1, vea.
Sub escribirDataEHora ()
Range ("A1") = Now
End Sub
Tercer Ejercicio
Código para pasar numero a letra con decimales
'FUNCION ALETRAS
Function ALETRAS(Numero As Double, Optional DecimalEnLetra As Boolean) As String
'Declaracion de variables
Dim Moneda As String
Dim Monedas As String
Dim Centavo As String
Dim Centavos As String
Dim Con As String
Dim NumCentavos As Double
Dim Letra As String
Const Maximo = 1999999999.99
' Parámetros
Moneda = "Peso"
Monedas = "Pesos"
Decimal1 = "Centavo"
Decimales = "Centavos"
Con = "Con"
'Si el numero esta dentro de 0 y 1999999999.99 (Maximo) entonces
'convertir el numero a letras
If (Numero >= 0) And (Numero <= Maximo) Then
Letra = LETRAS((Fix(Numero)))
'Si solo es un numero entonces
'agregar la moneda en singular
If (Numero = 1) Then
Letra = Letra & " " & Moneda
'De lo contrario agregar la moneda en plural
Else
Letra = Letra & " " & Monedas
End If
NumCentavos = Round((Numero - Fix(Numero)) * 100) 'Pasar a decimales (al numero le resta el numero entero y lo multiplica por 100)
'Si los centvos son mayores a cero entonces
If NumCentavos >= 0 Then
'Si el parámetro DecimalEnLetra es VERDADERO
If DecimalEnLetra Then
'Convertir los centavos en letra
Letra = Letra & " " & Con & " " & LETRAS(Fix(NumCentavos))
'Si el centavo es uno agregar leyenda Centavo (Singular)
If (NumCentavos = 1) Then
Letra = Letra & " " & Decimal1
'De lo contrario agregar la leyenda Centavos (Plural)
Else
Letra = Letra & " " & Decimales
End If
'De lo contrario mostrar los centecimos como número
Else
'Si los centavos son menores a 10 entonces
If NumCentavos < 10 Then
Letra = Letra & " " & Con & " " & " 0" & NumCentavos & "/100"
Else
'De lo contrario
Letra = Letra & " " & Con & " " & NumCentavos & "/100"
End If
End If
End If
'Regresar el resultado final de la conversión
ALETRAS = Letra
Else
'Si el Numero no está dentro de los límites mostrar un mensaje de error
ALETRAS = "ERROR: el importe esta fuera del límite."
End If
End Function
'Funcion LETRAS
Function LETRAS(Numero As Long) As String
'Declaracion de las variables
Dim Unidades, Decenas, Centenas
Dim Resultado As String
'Numeros en letras
Unidades = Array("", "Un", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciséis", "Diecisiete", "Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "Veintidos", "Veintitres", "Veinticuatro", "Veinticinco", "Veintiseis", "Veintisiete", "Veintiocho", "Veintinueve")Decenas = Array("", "Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa", "Cien")Centenas = Array("", "Ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos")
Select Case Numero
Case 0
Resultado = "Cero"
Case 1 To 29
Resultado = Unidades(Numero)
Case 30 To 100
Resultado = Decenas(Numero \ 10) + IIf(Numero Mod 10 <> 0, " y " + LETRAS(Numero Mod 10), "")
Case 101 To 999
Resultado = Centenas(Numero \ 100) + IIf(Numero Mod 100 <> 0, " " + LETRAS(Numero Mod 100), "")
Case 1000 To 1999
Resultado = "Mil" + IIf(Numero Mod 1000 <> 0, " " + LETRAS(Numero Mod 1000), "")
Case 2000 To 999999
Resultado = LETRAS(Numero \ 1000) + " Mil" + IIf(Numero Mod 1000 <> 0, " " + LETRAS(Numero Mod 1000), "")
Case 1000000 To 1999999
Resultado = "Un Millón" + IIf(Numero Mod 1000000 <> 0, " " + LETRAS(Numero Mod 1000000), "")
Case 2000000 To 1999999999
Resultado = LETRAS(Numero \ 1000000) + " Millones" + IIf(Numero Mod 1000000 <> 0, " " + LETRAS(Numero Mod 1000000), "")
End Select
LETRAS = Resultado
End Function
Pasos:
Seleccionar y copiar el código
- Abrir VisualBasic
- Clic en Insertar
-Clic en Modulo
- Pegamos el código
- Cerrar
- Clic donde saldrá los números en texto
- Abrír la función con igual, digitar aletras, paréntesis, clic en la celda a pasar en letras, cerrar el paréntesis. Enter
=ALETRAS(C3)
TALLER EN FORMACIÓN
8. En el total que salga en letras en la siguiente celda:
9. Una macro con un botón que salga el mensaje de la agencia de viaje.
TALLER
1) Crear macros con el comando

MsgBox "Bienvenidos a esta web!", vbExclamation

MsgBox "Bienvenidos a esta web!", vbYesNo, "Mi título"

Combinemos varios botonesMsgBox "Bienvenidos a esta web!", vbYesNo + vbExclamation, "Mi título"
Taller final
1) Encontrar la venta total
2) Mostrar total en letras
3) Ingresar botón con macro que limpie e imprima (2)
4) Mostrar un mensaje con exclamación con visual Basic
2)