Documentos de Académico
Documentos de Profesional
Documentos de Cultura
macros
Procesamiento de datos y
programación
Excel avanzado
NUESTRAS MODALIDADES
Que es una Macro?
• Es un conjunto de instrucciones
(códigos) que sirven para
automatizar procesos.
Paso 1:
Activar Macros: Excel
Paso 2:
Activar Macros: Excel
Paso 3:
Activar Macros: Excel
Paso 4:
Activar Ficha Programador
Paso 1:
Activar Ficha Programador
Paso 2:
Activar Ficha Programador
Paso 3:
Objetos y propiedades
Cuando en el mundo real nos
referimos a un objeto, esto
significa que hablamos de algo
más o menos abstracto que
puede ser cualquier elemento.
Ejemplo:
Carro, Silla, Casa, etc.
Objetos y propiedades
Todos los objetos tiene Métodos (acciones
realizadas) y Propiedades (características
propias).
Método:
- Abrir, Cerrar, Modificar
Propiedades:
- Color, modelo, tipo de letra,
tamaño, estilo, etc.
Objetos y propiedades
Los objetos se separan de sus
propiedades por un punto (.)
Formato:
Objeto.propiedad = valor
Ejemplo:
Carro.color = "Azul"
range("A2").value = 125
Tipos de Macros
Existen dos tipos:
• Macros Automáticas
• Se debe de seleccionar la
referencia de celda (Relativa o
Absoluta).
Secuencia relativa
Macros Automáticas
• Proporcionar un Nombre (no
espacio en blanco, no guiones) y
un método abreviado a la macro.
• Nombre : Ejemplo1
• Método Abreviado : Ctrl + p
• Descripción :
Macros Automáticas
• Ficha Programador
– Grupo Código
• Grabar macro
Macros Automáticas
• Nombre de la Macro
• Método Abreviado
• Guardar macro
• Descripción
Macros Automáticas
• Nombre de la Macro
• Método Abreviado
• Guardar macro
• Descripción
Macros Automáticas
Editor de Visual Basic
Ventana del proyecto Ventana que tiene los
que se esta realizando códigos en Visual Basic
QUÉ ES EL LENGUAJE VISUAL BASIC
APLICACIONES
• El lenguaje Visual Basic para Aplicaciones (VBA), en el
contexto de Excel, constituye una herramienta de
programación que nos permite usar código Visual Basic
adaptado para interactuar con las múltiples facetas de
Excel y personalizar las aplicaciones que hagamos en
esta hoja electrónica.
26
QUÉ ES EL LENGUAJE VISUAL BASIC
APLICACIONES
• Las unidades de código VBA se llaman macros. Las
macros pueden ser procedimientos de dos tipos:
- Funciones (Function)
- Subrutinas (Sub)
27
Introducción
Las funciones pueden aceptar argumentos,
como constantes, variables o expresiones.
Están restringidas a entregar un valor en una
celda de la hoja. Las funciones pueden
llamar a otras funciones y hasta subrutinas
(en el caso de que no afecten la entrega de
un valor en una sola celda)
29
Funciones
Una función tiene la siguiente sintaxis:
End Function
30
Vamos a implementar una función
• Vamos a implementar como una macro la función siguiente:
31
Vamos a implementar una función
32
Vamos a implementar una función
• Nuevamente, en el menú de la ventana que se abre, se elige Insertar, para luego seleccionar Módulo
33
Vamos a implementar una función
• Ahora en la pantalla de edición del módulo, escribimos el
siguiente código:
Function f(x)
f = 2 * x ^ 3 + Log(x) - Cos(x) / Exp(x) + Sin(x)
End Function
34
Vamos a implementar una función
35
Vamos a implementar una función
• Para evaluar la función en algunos valores que se
localicen, por ejemplo, desde la fila 3 hasta la fila 6
de la columna B, nos situamos en una celda en la
que nos interese dejar el resultado de dicha
evaluación y se digita =f(B3). Luego se arrastra hasta
C6 para copiar la fórmula, quedando:
36
Vamos a implementar una función
• En Excel la sintaxis es:
2*B3^3+LN(B3)-COS(B3)/EXP(B3)+SENO(B3)
• Observe, por ejemplo, que la función logaritmo natural , en Excel se escribe LN mientras
que en VBA se escribe Log.
37
Elementos de Programación VBA
Un programa computacional escrito mediante
cualquier lenguaje de programación puede
verse a grandes rasgos como un flujo de
datos, algunos jugando el papel de datos de
entrada, otros son datos que cumplen alguna
función temporal dentro del programa y otros
son datos de salida. A lo largo del programa
es muy frecuente que sea necesaria la
entrada en acción de otros programas o
procesos. A mayor complejidad del problema
que resuelve el programa, mayor es la
necesidad de programar.
38
Elementos de Programación VBA
39
Flujo Secuencial
40
Flujo Secuencial
• Pseudocódigo:
Inicio: Ingresa el número N de días
Paso 1: H = 24*N, para determinar la cantidad de horas
Paso 2: M = 60*H, para determinar la cantidad de minutos.
Paso 3: S = 60*M, para determinar la cantidad de segundos.
Paso 4: Retorne S.
Fin.
41
Flujo Secuencial
• Flujo Secuencial:
42
Flujo Secuencial
• Programación VBA
Function CalculeSegundos(Dias)
CantHoras = 24 * Dias
CantMinutos = 60 * CantHoras
CalculeSegundos = 60 * CantMinutos
End Function
43
Flujo Condicional
44
Flujo Condicional
• If...Then...Else
• Ejecuta condicionalmente un grupo de instrucciones,
dependiendo del valor de una expresión.
• Sintaxis
If condición Then
instrucciones
Else instrucciones-else
45
Flujo Condicional
• Puede utilizar la siguiente sintaxis en formato
de bloque:
If condición Then
instrucciones
ElseIf condición Then
instrucciones-elseif
...
Else instrucciones-else
End If
46
Flujo Repetitivo (For-Next / While-Wend)
48
For .... next
51
Promedio Simple
Programar:
Function PromedioSimple(R As Range) As Double 'R es la variable
que recibe el rango
Dim n As Integer
Dim sump As Double
sump = 0
n = R.EntireColumn.Count 'cantidad de notas en el rango
52
Crear Variables
Una variable es un contenedor que almacena
datos dentro de un elemento dinámico. Se
crea una variable de la forma siguiente:
Dim nombVariable as TipoDeDato
Dim: palabra reservada para crear variables u objetos.
TipoDeDato: Tipo de variable a crear. Los tipos mas
utilizados son: Integer, String, Byte, Boolean, Object,
Variant, Currency, Date, Double, etc.
53
Crear Variables
• Se recomienda indicar la instrucción
para crear la variable y no crear una
variable de forma aleatoria. Para ello se
utiliza la opción: option explicit.
54
Crear Variables
• Ejemplo sin option explicit:
55
Como seleccionar celdas y hojas
• Para movernos en hojas usamos la
instrucción:
• Worksheets(3).Select
• Para movernos en celdas usamos:
• Range("A1").Select
• Para escribir en la celda activa usamos:
• ActiveCell.Value = "hola"
56
Como seleccionar celdas y hojas
• Estando ubicados en la hoja 1, deseamos
ubicarnos en la celda B5, de la hoja
cuadroestadistico, para escribir INEI,
entonces el código será:
Worksheets(“cuadroestadistico).Select
Range(“B5").Select
ActiveCell.Value = “INEI"
57
Uso de rangos y funciones
• El Promedio eliminando las dos notas más
bajas. En este caso, a un conjunto de notas
les calculamos el promedio simple pero
eliminando las dos notas más bajas.
• El programa PromedioQ suma las n notas de
una fila (rango), localiza la posición (en el
vector R) de las dos notas más bajas y luego
le resta a la suma estas dos notas para luego
dividir entre n-2. En este caso, el rango R es
una matriz , o sea, se puede ver como un
vector de n componentes.
58
Uso de rangos y funciones
• Diseñar:
59
Uso de rangos y funciones
Function PromedioQ(R As Range) As Double
Dim n, i, Imin1, Imin2 As Integer
Dim suma As Double
suma = 0
n = R.EntireColumn.Count 'número de elementos de la selección
For i = 1 To n
suma = suma + R(1, i) 'R es una matriz 1xn (o sea, un vector)
Next i 'En R no se hace referencia a la celda
62
Subrutinas
• Otra forma
63
Elementos de Subrutinas
• Public. Es opcional. Indica que la subrutina puede ser llamada por todas las
demás subrutinas sin importar donde se encuentre.
• Private. Es opcional. Indica que la subrutina puede ser llamada solamente por
otras subrutinas que se encuentren en el mismo módulo.
• Static. Es opcional. Indica que las variables locales de la subrutina se
mantienen constantes de una llamada a otra. El ámbito de acción de esta
declaración no incluye a variables declaradas fuera de la subrutina.
• Nombre-De-Subrutina. Es requerido. Indica el nombre de la subrutina.
• lista-argumentos. Es opcional e indica las variables que conforman los
argumentos con que una subrutina es llamada. Para separar una variable de
otra se escribe una coma.
• instrucciones. Es opcional y conforma el conjunto de instrucciones que son
ejecutadas a lo largo de la subrutina.
64
Matrices dinámicas
• Cuando hacemos una selección con el mouse, es
conveniente entrar los valores seleccionados en una
matriz dinámica, es decir, una matriz que se ajuste a
la cantidad de datos seleccionada y que,
eventualmente, se pueda recortar o hacer más
grande.
• Una matriz dinámica mtr1 de entradas enteras se
declara así:
Dim mtr1() As Integer ' Declara una matriz dinámica.
65
Matrices dinámicas
• Las instrucciones siguientes cambian el tamaño de
la matriz mtr1 y la inicializa. Observe el uso de Redim
para cambiar el tamaño de la matriz dinámica.
Dim mtr1() As Integer ' Declara una matriz dinámica.
Dim r() as Double
Redim mtr1(10) ' Cambia el tamaño a 10 elementos, 1x10.
Redim r(n,m) ' Cambia tamaño a n x m
66
Matrices dinámicas
67
Matrices dinámicas
Sub repetir()
Dim mtr1(10) As Integer
For i = 1 To 10 ' Bucle 10 veces.
mtr1(i) = i ' Inicializa la matriz.
Next i
For j = 1 To 10
Worksheets(1).Cells(j + 5, 5) = mtr1(j)
Next j
End Sub
68
Matrices dinámicas
Ejercicio1: mostrar en una hoja de calculo los 50
primeros números pares que se encuentran en una
matriz.
Ejercicio2: Mostrar los elementos de una matriz de 50
datos, que contiene valores String, de la forma
siguiente: ELEMENTO 1, ELEMENTO 2.....
ELEMENTO 50.
69
Descarga el certificado Digital del curso
https://sistemas.inei.gob.pe/WebCerEnei/