1. ¿Qué es?
2. ¿Porqué aprender?
1. Visual Basic for Applications, es el lenguaje interactivo
de las aplicaciones de Microsoft que te permite
interactuar con las diferentes librerías, objetos y/o entre
estas mismas aplicaciones (M.Word, M.Excel,
M.PowerPoint, M.Acces, M.Outlook, etc).
2
2. Hoy en día la flexibilidad que ofrecen las variedades
de lenguajes de programación, permiten que un trabajo
que podría demorar 8 horas de arreglos manuales se
reduzcan a minutos, y porque no, segundos.
VBA, específicamente en el ambiente de M.Excel es una
herramienta necesaria y de alta demanda, filtro para
puestos de trabajo como requísitos indispensables para
la automatización de procesos.
3
3. ¿Entonces qué
puedo hacer con
VBA?
3. Lo que sea.
5
¿Qué ella me ame?
6
Ah no, eso no.
7
Pero si por ejemplo…
▪ Un organizador interactivo para conteo de productos
8
Un registro para alumnos de pregrado
Es verdad que hay una gran variedad aplicaciones
estándar, y estas dependen mucho del problema o tarea
que el usuario desee realizar.
Así que adelante, empecemos a programar un poco.
10
11
12
13
14
15
4. Sintaxis básicas
(VBA-Excel)
Antes que nada, trataremos de resumir los aspectos
básicos más importantes de la sintáxis, definitivamente
hay múltiples métodos de codificar, y de eso se trata
de que cada uno reconozca su estilo.
Después de todo la programación es un arte.
• Abrir entorno VBA
Abrimos una hoja de cálculo .xlsx simple y presionamos
ALT+F11 y se apertura la interfaz VBA. Damos Anticlick sobre el
proyecto “NombreDelLibroExcel” y le damos a Insertar / Nuevo
Módulo.
18
19
• Creamos un proyecto
Empezamos a digitar sobre la ventana en blanco del VBA, y
escribimos lo siguiente:
Sub MiPrimerPrograma()
End sub
20
• Seleccionar Hoja y celda
específica
Como ejercicio básico empezamos seleccionando una celda de
una hoja específica, usamos F8 para compilación parcial:
Sub MiPrimerPrograma()
Sheets(1).select
Range(“B2”).select
End sub
21
• Agregar Hoja, Nombrar
Libro, Abrir libro…
Sub HojaAgregar()
Sheets.Add.Name = "NuevaHojita" 'Agregar y Nombrar una hoja
lib1 = ActiveWorkbook.Name 'Nombrar el libro activo
Workbooks(lib1).Activate 'Activar libro especifico
Workbooks.Open "C:\Users\Joshua Rojas\Desktop\libroA.xlsx"
lib2 = ActiveWorkbook.Name
Workbooks(lib2).Activate
Workbooks.Add 'Agregar libro
End Sub
22
• Asignamos un valor a
celda específica
Sub MiPrimerPrograma()
Sheets(1).select
Range(“B2”).select
Activecell.Value= 2019
End sub
23
• Realizar una operación
con 2 celdas
Sub MiPrimerPrograma()
Sheets(1).select
Range(“B2”).select
ActiveCell.Value= 2019
Range(“B3”).select
ActiveCell.Value=4
Range(“B4”).select
ActiveCell.Value=Range(“B2”).value*Range(“B3”).value
End sub 24
¡Atención!
Hagamos lo mismo pero
con otros comandos. Es
importante la práctica.
25
• Realizar una operación
con 2 celdas
Sub MiPrimerPrograma()
Sheets(1).Select
Range("b2").Select
ActiveCell.Value = 2019
ActiveCell.Offset(1, 0).Value = 4
ActiveCell.Offset(2, 0).Value = ActiveCell.Value * ActiveCell.Offset(1, 0).Value
End sub
26
• Almacenar Valores e
Imprimir en MsgBox
Almacenar valores de celdas de una determinada hoja y
realizar operaciones o arreglos es bastante útil, veamos:
27
Sub MiPrimerPrograma()
Sheets(1).Select
Range("b2").Select
ActiveCell.Value = 2019
ActiveCell.Offset(1, 0).Value = 4
ActiveCell.Offset(2, 0).Value = ActiveCell.Value * ActiveCell.Offset(1, 0).Value
a = ActiveCell.Value
b = ActiveCell.Offset(1, 0).Value
c = ActiveCell.Offset(2, 0).Value
MsgBox ("El valor de a es " & a & " el valor de b es " & b & " y c es " & c & " " &
chr(10) & " A la Bica dile Nica")
End Sub
28
• Condicional if/else/elseif
Sub Condicional()
a = InputBox("Ingrese un valor para (a)")
If a > 1 Then
MsgBox ("a es un número mayor a 1")
ElseIf a = 1 Then
MsgBox ("a es un número igual a 1")
Else
MsgBox ("a es un número menor a 1")
End If
End Sub 29
• Bucle For/Next
Sub MiPrimerBucle()
a = InputBox("Ingrese el valor para i")
For i = 1 To a
Range("b" & i + 1).Select
ActiveCell.Value = i
Next i
End Sub
30
• Bucle While/Wend
Sub MiPrimerBucle()
i=0
While i < 10 'Entra al bucle en True
Cells(i + 2, 2).Value = i
i=i+1
Wend
End Sub
31
• Bucle Do Until/Loop
Sub MiPrimerBucle()
i=0
Do Until i > 10 'Entra al bucle en False
Cells(i + 2, 2).Value = i
i=i+1
Loop
End Sub
32
• Arreglos
La construcción de arreglos o “arrays” es una parte
importante de la elaboración de algoritmos que involucran
cálculos. Aquí un pequeño ejemplo.
33
Sub MiPrimerArray()
Dim var As String 'Definir una variable
Dim v() As Double 'Dimensionando array
m = InputBox("Ingrese el tamaño del arreglo", "Mi Arreglo :v")
ReDim v(1 To m) As Double 'Redimensionando array
For i = 1 To UBound(v) 'Tamaño Array
v(i) = i
If i < UBound(v) Then var = var & v(i) & ","
If i = UBound(v) Then var = var & v(i)
Next i
MsgBox ("v=(" & var & ")")
End Sub 34
• Uso de “Set”
El uso de la instrucción “Set” sirve para asignar valores a
una variable tipo objeto. Así mismo a partir de esto
podremos llamar al objeto Application.WorksheetFunction a
fin de llamar desde el VBA a las funciones por defecto del
Excel.
35
VariableObjeto()
Dim Celda As Object
Set Celda = Worksheets("Hoja1").Range("b2")
Celda.Value = 200
Celda.Font.Bold = True
Celda.Font.Italic = True
Celda.Font.Size = 10
Celda.Font.Name = "Cambria"
End Sub
36
Sub FuncionesExcel()
Set xl = Application.WorksheetFunction
a=1
b=2
c = xl.Sum(a, b)
MsgBox (c)
End Sub
37
Thanks!
Any questions?
You can find me at
▪ [email protected]
38