0% encontró este documento útil (0 votos)
269 vistas137 páginas

Macros en Excel

Este documento presenta un curso sobre macros en Excel. Incluye la presentación de los participantes, el perfil del participante objetivo, los objetivos generales del curso, el programa de trabajo con los horarios, el temario que cubre conceptos como macros, Visual Basic para Aplicaciones, formularios, controles, programación y más. También incluye detalles sobre las evaluaciones que consisten en una evaluación inicial, una final escrita, prácticas y ejercicios, y una evaluación final práctica.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
269 vistas137 páginas

Macros en Excel

Este documento presenta un curso sobre macros en Excel. Incluye la presentación de los participantes, el perfil del participante objetivo, los objetivos generales del curso, el programa de trabajo con los horarios, el temario que cubre conceptos como macros, Visual Basic para Aplicaciones, formularios, controles, programación y más. También incluye detalles sobre las evaluaciones que consisten en una evaluación inicial, una final escrita, prácticas y ejercicios, y una evaluación final práctica.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 137

CURSO MACROS EN EXCEL

M.T. Griselda Pea Flores


Presentacin de los Participantes

Nombre

Puesto

Experiencia con Excel

Utilizacin de Excel en tu trabajo.


Perfil del Participante

Trabajador de CENACE con conocimientos en manejo


de Excel 2016
Objetivo General

Al finalizar el curso, el participante poseer conocimientos


bsicos sobre el manejo de Macros en Excel 2016.
Identificacin de Expectativas

1. ?
2. ?
3. ?
4. ?
Puntualidad (Recesos)
Atender el curso en su totalidad.
Celular en modo silencio.
Programa de trabajo

Horarios
Entrada 08:00 Salida 17:00

Receso 10:30 Regreso 10:40


Receso 12:30 Regreso 13:30
Receso 14:30 Regreso 14:40
TEMARIO

Macros
Maneras de realizar macros en Excel
Grabadora de Macros
Ventana del Editor de VB
Visual Basic para Aplicaciones
Modos de trabajo en Visual Basic
Formularios
Controles Bsicos
Programacin
Programacin Orientada a Objetos
Objetos de Excel
Elementos del lenguaje VBA
Variables
Tipos de Datos
Constantes
Reglas para nombrar variables
Tipos de Datos
Funciones de Conversin de Tipos de Datos
mbito de ariables
mbito de Constantes
Constantes locales
Instrucciones de asignacin
Operadores
Funciones VBA
Construcciones With.... End With
Construcciones For Each.... Next
Construcciones If.... Then
Ejecucin de Macros con Eventos
Control de Errores
Complementos
Evaluaciones

Evaluaciones

Inicial y final

Evaluacin Inicial 0%
Evaluacin final escrita 50%
Prcticas y Ejercicios 30%
Evaluacin final prctica 20%
MACROS

Una Macro es un programa escrito o grabado por el usuario que almacena una
serie de comandos de Microsoft Excel que pueden utilizarse posteriormente
como un nico comando.

Mediante las macros pueden automatizarse las tareas complejas y pueden


reducirse el nmero de pasos necesarios para realizar las tareas que se
ejecutan con ms frecuencia.

Las macros se graban en el lenguaje de programacin de Visual Basic para


aplicaciones de Microsoft.
Habilitar la ficha Programador

Ir a la Ficha Complementos
Botn derecho sobre el rea en blanco
Guardar archivos con Macros

Cuando guardamos un archivo y queremos que las Macros que


hemos creado se almacenen con el resto de las hojas de
clculo, deberemosutilizar un tipo de
archivo diferente.

Para ello, deberemos ir la pestaaArchivoy


seleccionar la opcinGuardar como.

En el desplegableGuardar como tipo,seleccionar


Libro de Excel habilitado para macros (*.xlsm).
Cuando abrimos un archivo que tiene Macros almacenadas, puede
que se nos muestre este anuncio bajo la banda de opciones:

Esto ocurre porque Office no conoce la procedencia de las Macros.


Como estn compuestas por cdigo,podran realizar acciones
que fuesen perjudiciales para nuestro equipo.
Ejercicio

Abrir Excel.
Crear un libro nuevo.
Examinar
Guardarlo como Libro de Excel habilitado para Macros y
nombrarlo Ejercicios.xlsm.
Habilitar la ficha Programador.
Maneras de realizar Macros en Excel

Existen 2 maneras de realizar Macros en Excel:

Mediante el uso de la grabadora de Macros.


Mediante el uso del lenguaje VBA para programar en Excel.
(Manual)
GRABADORA DE MACROS

Una de las principales fuentes de


informacin acerca de cmo empezar a
trabajar con las macros es la propia
grabadora de macros.
Grabar una Macro

Para grabar una macro:


Ir a la ficha Programador
Grupo Cdigo
Botn Grabar Macro
Podemos asignarle unMtodo abreviado:
Mediante la combinacin de las tecla CTRL + "una tecla". Debemos
encontrar una combinacin que no utilice ya Excel.
Realizar las acciones para las cuales deseamos obtener el cdigo
Detener la grabacin
Ejercicio

Grabar una macro:

Iniciar la grabacin de una macro.

Llamarla InsertarTexto.

En la celda A1 escribir tu nombre completo.

Cambiarle el color al texto.

Ir al men Macros

Seleccionar la macro que acabamos de crear y seleccionar modificar.

Observar el cdigo.
** Borrar el contenido de la celda A1
Ejecutar una Macro

Ejecutar una macro:

Ficha Programador

Grupo Cdigo

Botn Macros

Elegir la macro deseada

Ejecutar
** Ejecutar la Macro InsertarTexto
PRACTICA 1
Ejercicios 1 y 2
20 Minutos
Crear macro Manualmente

Abrir el editor de Visual Basic.

Una vez abierto el editor, debemos insertar un Mdulo de trabajo


que es donde se almacena el cdigo de las funciones o procedimientos
de las macros.

Para insertar un mdulo, accedemos al menInsertar Mdulo.

A continuacin, debemos plantearnos si lo que vamos a crear es una


funcin (en el caso que devuelva algn valor) o si, por el contrario, es
un procedimiento (si no devuelve ningn valor).
Escoger elTipo, si es unProcedimiento,FuncinoPropiedad.

Adems, podemos seleccionar elmbitode ejecucin. Si lo ponemos


comoPblico,podremos utilizar el procedimiento/funcin desde cualquier otro
mdulo; si lo creamos comoPrivado,slo podremos utilizarlo dentro de ese
mdulo.

Una vez seleccionado el tipo de procedimiento y el mbito, presionamos


sobreAceptary se abrir el editor de Visual Basic donde escribiremos las
instrucciones necesarias para definir la macro.
Un proyecto de VBA contiene:

Objetos de Excel (Libros, Hojas)


Formularios
Mdulos.
Ventana del Editor de VB

Lista de
Lista de Procedimientos
Objetos
Visual Basic para
Aplicaciones

VBA
VBA

Visual Basic es una herramienta de diseo de aplicaciones para Windows.

Estas aplicaciones se desarrollan en gran parte a partir del diseo de una interfaz
grfica.

En una aplicacin Visual Basic, el programa est formado por una parte de cdigo puro,
y otras partes asociadas a los objetos que forman la interfaz grfica.

VBA manipula objetos y cada producto (Excel, Word, Access, etc.) tiene su propio
modelo de objetos nico.
Qu podemos hacer con VBA?

Crear aplicaciones que nos permitan:

Procesar entradas del usuario para mostrar un producto final.

Abrir e interactuar con otras aplicaciones tales como Word, Excel,


etc.

Explotar informacin de una Base de Datos.


PASOS PARA LA CREACIN DE UN PROGRAMA EN
VB.

Anlisis
Diseo de la interfaz del usuario.
Generacin de cdigo.
MODOS DE TRABAJO EN VISUAL BASIC

Visual Basic puede trabajar de dos modos distintos:

En modo de diseo

En modo de ejecucin
Modo de Diseo

En este modo el usuario construye interactivamente la


aplicacin, colocando controles en el formulario, definiendo
sus propiedades, y desarrollando funciones para gestionar los
eventos.
Modo de Ejecucin

En ese caso el usuario acta sobre el programa y prueba


cmo responde el programa.

En este modo probamos nuestras aplicaciones.


AMBIENTE DE DISEO
Formularios

El Formulario es un objeto, que sirve de soporte de otros


objetos.
Se puede definir como el espacio en el cual podremos disear
nuestra interfaz.
Para insertar un formulario debemos abrir el editor de VBA por
medio del botn del Men Programador o bien, con la
secuencia de teclas Alt+F11 y seleccionar Insertar -> UserForm.
Cuadro de Herramientas

Es un men de controles que se pueden integrar a nuestra


aplicacin.
Ventana de Propiedades

Las propiedades son aquellas caractersticas que posee un objeto.


Con esta ventana podemos modificar las propiedades de nuestros
controles
Controles Bsicos

Una vez introducido un Formulario, se pueden colocar los objetos (controles)


que forman parte de la aplicacin.

Algunos de los controles bsicos que podemos utilizar en Visual Basic son los
siguientes:

Botones de Comando
Cajas de Texto
Etiquetas
Combo Box
Botn de Comando (Command Button)

El Command Button es un objeto que lanza alguna accin al hacer clic


sobre l.
Ejercicio

Abrir el Editor de Visual Basic.


Insertar un Formulario.
Observar la ventana de propiedades.
Cambiar la propiedad Name y nombrarlo Formulario1.
Insertar un CommandButton, seleccionarlo y observar sus
propiedades.
Modificar la Propiedad BackColor.
Etiqueta (Label)

Una etiqueta es un control que nos permite presentar un texto.


Este control lo utilizaremos cuando requerimos que el usuario de nuestra
aplicacin no modifique el texto.

**Insertar una Etiqueta y modificar sus propiedades Caption y Font


Caja de texto (TextBox)

Las cajas de texto son los controles en los que Visual Basic permite a los
usuarios introducir textos.
Tambin se utilizan para la presentacin de textos que los usuarios
puedan modificar.
ComboBox

Permite al programador desplegar una lista de elementos para que


el usuario seleccione uno de estos.
Ejercicio

** Insertar dos cajas de texto y modificar su propiedad Text.


** Modificar el formulario para que tenga los siguientes Controles:
Ejecucin de una aplicacin

Para ejecutar nuestra aplicacin y ver el formulario tal como lo


ver el usuario presionamos el botn o la tecla F5.
Detencin de la ejecucin

Para detener la ejecucin de nuestro programa y poder volver al


modo de diseo y programacin debemos presionar el botn:
Lanzar un Formulario

Para probar o lanzar un formulario en VBA deberemos hacerlo


mediante un botn y una pequea macro. Esta macro deber tener
la siguiente estructura:
Mi_formulario.Show
Mediante esta sencilla instruccin activaremos el formulario.
Desde la pantalla de VBA para ejecutarlo deberemos presionar la
tecla F5.
Ejercicio
Abrir el Editor de Visual Basic
Insertar un Modulo
Insertar el siguiente procedimiento:
Sub AbreFormulario()
Formulario1.Show
End Sub
Abrir la Hoja1 del libro Ejercicios.xlsm
Ir a la ficha Programador, Grupo Controles, Insertar -> Controles de Formulario -> Botn.
Asignar la accin del botn a la Macro AbreFormulario.
PROGRAMACIN EN
VISUAL BASIC
Programacin

Programa: Conjunto de instrucciones para que una computadora


realice una tarea especfica.

Un programa est constituido por variables que contienen los


datos con los que se trabaja y por algoritmos que son las
sentencias que operan sobre estos datos.
Programacin Orientada a Objetos (POO)

Un Objeto es una entidad que representa a un elemento de la vida real.

Cada objeto posee:


Atributos
Mtodos

Ejemplo:
Cliente. Nombre, Nmero de Cliente, Direccin, Email.
Producto: Nmero de Producto, Nombre, Costo, Descripcin.
Objetos de Excel

Application
(Excel)

Libros
(Workbooks)

Hojas
(Worksheets
)

Rango
(Range)
Objetos: VBA manipula objetos que se encuentran en su aplicacin husped,
en este caso Excel. Entre los ejemplos de objetos de Excel se encuentran:
Libros
Hojas
Rangos
Grficos
Los objetos pueden contener otros objetos.
Ejemplo: El objeto Excel del tipo Application contiene otros objetos como Workbook y
CommandBar y el objeto Workbook contiene objetos como Worksheet, el objeto
Worksheet contiene objetos como Range y Table y as sucesivamente.
Colecciones: Los conjuntos de objetos similares forman una coleccin. Por ejemplo la
coleccin Worksheet se compone de todas las hojas de un determinado libro. Las colecciones
son objetos por s mismos.

Jerarqua de Objetos: Cuando se hace referencia a un objeto miembro o contenido, se


especifica su posicin en la jerarqua de objetos utilizando . Para separar los contenedores
de los miembros. Ejemplo: Para hacer referencia a un libro llamado Libro1.xls:

Application.workbooks(Libro1.xls)
Llevando esto a otro nivel.
Application.workbooks(Libro1.xls).Worksheets(Hoja1).Range(A1)
Objetos Activos: Si omite una referencia especfica a un objeto,
Excel utiliza los objetos activos.

Si el libro activo es Libro1, la referencia anterior se puede hacer ms


simple:
Worksheets(Hoja1).Range(A1)
Y si la hoja activa es Hoja1 entonces:
Range(A1)
Elementos del lenguaje VBA

Cdigo: Realizamos acciones en VBA ejecutando cdigo, una serie de


instrucciones.
Procedimiento: Es una unidad de cdigo informtico que realiza alguna
accin.
Funcin: Unidad de cdigo que realiza alguna accin y despus
devuelve un valor o una matriz.
Mdulo: Los mdulos de VBA estn almacenados en un libro de Excel y
se editan y visualizan en el editor de Visual Basic. El mdulo consta
de Procedimientos y Funciones.
Libro

Mdulos

Procedimientos
y Funciones

Cdigo
Variables, tipos de Datos y Constantes

Variables: espacio en el sistema de almacenaje y un nombre


simblico (un identificador) que est asociado a dicho espacio. Ese
espacio contiene una cantidad de informacin conocida o
desconocida, es decir un valor. Los valores se almacenan en
variables.
Declarar variables

Antes de utilizar una variable primero debemos de declararla.


Cuando procedimiento corre, tan pronto como la declaracin de la
variable es encontrada, VBA reserva una cantidad de memoria
necesaria para almacenar el contenido de la variable.

Se puede minimizar la cantidad de espacio requerida para el


almacenamiento de la variable al especificar el tipo de dato que la
variable va a almacenar.
Para declarar una variable debemos de utilizar la palabra
reservada Dim precedida del nombre que deseamos asignar a la
variable y el tipo de dato que almacenar.

Ejemplo:
Dim strCiudad as String
Dim intCantidad as Integer
mbito de las variables

Determina qu mdulos y procedimientos pueden usar la variable.

mbito Cmo se declara la variable


Un solo procedimiento Incluyendo una declaracin Dim o Static dentro del
procedimiento

Un solo mdulo
Incluyendo una declaracin Dim o Private antes del
primer procedimiento de un mdulo

Todos los mdulos


Incluyendo una declaracin Public antes del primer
procedimiento de un mdulo
Declarar un grupo de variables

VBA no permite declarar un grupo de variables como de un mismo


tipo en particular separando por comas. Por Ejemplo:
Dim i, j, k as Integer
La manera correcta sera:

Dim i as Integer, j as Integer, k as Integer


Option Explicit

Para forzarnos a declarar todas las variables que vamos a utilizar


se debe incluir la siguiente instruccin al principio de un mdulo
de VBA:
Option Explicit

Esta instruccin hace que el programa se detenga cuando


encuentre un nombre de variable que no ha sido declarada
Reglas para los nombres de las variables

Se pueden utilizar caracteres del alfabeto, nmeros y algunos caracteres


de puntuacin pero el primer carcter debe ser una letra del alfabeto.
VBA no distingue entre maysculas y minsculas. Para hacer ms legibles
los nombres se puede utilizar una mezcla de maysculas y minsculas
(por Ejemplo: PrecioTotal).
No se pueden utilizar ni espacios ni puntos. En lugar de esto es mejor
utilizar _ (por Ejemplo: Precio_Maximo).
No se aceptan caracteres especiales ($,%,&,!).
Los nombres de las variables pueden contener hasta 254 caracteres.
Convenciones para dar nombre a las variables

Las convenciones para dar nombre a las variables requieren que se


utilice un prefijo en minscula de forma estndar para las
variables.
Ejemplo, si tenemos una variable del tipo boolean (verdadero o
falso) que indique si est activa una cuenta debemos llamarla
bCuentaActiva.
Prefijos estndar para tipos de datos

Tipo de Dato Prefijo


Boolean b
Integer i
Long l
Single s
Double d
Currency c
Date/Time dt
String str
Object obj
Variant v
User defined u
Tipo de Datos

Es la manera en cmo se almacenan los datos en memoria.


Nmeros enteros, Nmeros reales, cadenas, etc.
VBA puede ocuparse de los tipos de datos automticamente ms
esto tiene como consecuencia una ejecucin ms lenta y un uso de
memoria menos eficiente.
Para ahorrar bytes en memoria debemos de especificar los tipos
de datos adecuados a nuestros objetivos.
Tipos de datos

Si no se especifica un tipo de dato, VBA por default lo interpreta como tipo Variant.
Es mejor utilizar el tipo de datos que use menor nmero de bytes. La velocidad de ejecucin del cdigo
Depender del nmero de bytes.
Otra forma de especificar el tipo de datos de las variables es
aadir un carcter al nombre de la variable, por Ejemplo:
Dim Precio%
mbito Cmo se declara la variable
Entero
%

Largo
&

Doble
#

Moneda
@
Cadena
$
Inicializar Variables

Una vez que se ha declarado una variable, necesitamos


inicializarla.
Se inicializa una variable al asignarle un valor.
Para asignar un valor a una variable se utiliza la siguiente sintaxis:
prefijoNombreVariable = valor

Ejemplo:
strCiudad = Boston
intCantidad = 5
Inicializar Variables

Una vez que se ha declarado una variable, necesitamos


inicializarla.
Se inicializa una variable al asignarle un valor.
Para asignar un valor a una variable se utiliza la siguiente sintaxis:
prefijoNombreVariable = valor

Ejemplo:
strCiudad = Boston
intCantidad = 5
Constantes

El valor asignado a las variables puede cambiar durante la ejecucin del


programa por ello se le llama variable.

Cuando se necesita hacer referencia a un valor o cadena con nombre que


no cambian nunca: una constante.

Se declaran usando la instruccin const.

const rate = 0.7525


Constantes locales

Al igual que las variables las constantes tambin tienen su mbito.


Si queremos que una constante solo pueda utilizarse dentro de un
determinado proceso debemos declararla despus de la instruccin
Sub o Function para hacerla una constante local.
Constantes privadas

Para que una constante puede usarse en todos los procesos de un


mdulo debemos declararla antes del primer procedimiento de un
mdulo.
Constantes pblicas

Para que una constante pueda declararse en todos los mdulos en


un libro debemos declararla usando la palabra clave public y
declararla antes del primer procedimiento de mdulo.
Instrucciones de asignacin

Son instrucciones que realizan una evaluacin matemtica y asigna


el resultado a una variable u objeto.
La expresin es una combinacin de palabras clave, operadores y
constantes que producen una cadena, nmero u objeto.

VBA utiliza el signo = como operador de asignacin.

X = (y+2)/(z*2)
Operadores

Los operadores juegan un papel principal en VBA, algunos


describen operaciones matemticas tales como la suma (+), resta
(-), multiplicacin (*), divisin (/), exponentes (^), etc.
La barra invertida (\) se usa para divisiones de nmeros enteros y
el operador Mod devuelve el resto de un nmero dividido entre
otro.
17 Mod 3
Operadores de comparacin

VBA tambin admite los operadores de comparacin usados en


frmulas de Excel:
Igual (=)
Mayor que (>)
Menor que (<)
Mayor igual que (>=)
Menor igual que (<=)
Operadores lgicos

Operador Operacin que realiza


No Negacin lgica
And Cojuncin lgica en dos expresiones
Or Difusin lgica en dos expresiones
Xor Exlusion lgica
Eqv Equivalencia lgica
Imp Implicacin lgica
Procedimiento

Private/Public Sub NombreProcedimiento()



Instrucciones

End Sub
Funcin

Private/Public Function NombreFuncion() As TipoDatoADevolver



Instrucciones

End Function
Argumentos

Un argumento es un valor que recibe un procedimiento o una funcin el cual ser utilizado para
efectuar las acciones deseadas dentro del cdigo.
Estos se especifican de la siguiente manera:
Para un procedimiento:
Private/Public Sub NombreProcedimiento(variable as TipoDato)

Instrucciones

End Sub

Para una Funcin:


Private/Public Function NombreFuncion(variable as TipoDato) As TipoDatoADevolver

Instrucciones

End Function
Procedimiento con Argumentos

Public Sub Multiplica(a As Integer, b As Integer)


Dim Resultado As Integer
Resultado = a * b

MsgBox Resultado
End Sub
Funcin con Argumentos

Public Function Fnc(a As Integer, b As Integer) As Double

Dim Suma As Integer


Suma = a + b

Fnc = Suma

End Function
Invocar procedimientos

Podemos llamar a un procedimiento externo, del mismo mdulo o


de otro diferente y cuando ste sea declarado como pblico.
Para llamar a un procedimiento utilizamos la palabra Call.
Modulo1 Modulo2

Public Sub Calculadora(a As Integer, b As Public Sub Multiplica(a As Integer, b As Integer)


Integer) Dim Resultado As Integer
Call Multiplica(a, b) Resultado = a * b
End Sub
MsgBox Resultado
End Sub
Invocar Funciones

Podemos llamar a una funcin externa, del mismo mdulo o de


otro diferente siempre y cuando ste sea declarado como pblico.
Para llamar a una funcin debemos asignar el resultado de sta a
una variable.
La variable que recibir el resultado debe ser del mismo tipo que
el resultado devuelto de la funcin.
Modulo3 Modulo4

Public Sub Operaciones(a As Integer, b As Integer) Public Function Fnc(a As Integer, b As Integer) As
Double

Dim Suma As Double


Suma = Fnc(a, b) Dim Suma As Integer
Suma = a + b
MsgBox Suma
Fnc = Suma

End Function
End Function
Obtener valores del Usuario

A menudo, los valores guardados en las variables vienen de la


entrada de un usuario.
Para obtener informacin de los usuarios mientras un
procedimiento o funcin est ejecutndose, VBA provee dos
funciones: MsgBox e InputBox.
MsgBox
La funcin MsgBox es usada para desplegar un mensaje al usuario.
Es comunmente usada para desplegar mensajes del tipo Si/No o OK/Cancel.
La funcin MsgBox utiliza la siguiente sintaxis:
ReturnValue = MsgBox(prompt[buttons],[title])

Donde prompt es el mensaje que ser mostrado al usuario.


El argumento buttons es opcional. Este especifica qu botones sern desplegados en el mensaje.

El argumento Title es opcional. Especifica una cadena o texto que ser desplegado en la barra de ttulo de la caja de mensaje.
ReturnValue: Cuando se utiliza un MsgBox como funcin estamos
regresando un valor desde el usuario, usualmente a una variable.
El valor es guardado como entero pero es representado por un
valor listado en la siguiente tabla:
Ejemplo:

Dim intUserResponse as Integer


intUserResponse = MsgBox(Efectuar compra?, VbYesNo, Orden
de Compra)
Tambien podemos utilizar la funcin MsgBox para mostrar un
mensaje sin esperar una respuesta del usuario, esto se hace de la
siguiente manera:

MsgBox Cadena a mostrar


Funcin InputBox
Esta funcin despliega un cuadro de dilogo, espera una entrada de texto del
usuario y un click a un botn.
Regresa una cadena con el texto que el usuario introdujo en el textbox.
La funcin InputBox utiliza la siguiente sintaxis:
ReturnValue = InputBox(prompt, title, default)
Donde:
Prompt: Es un argumento requerido y es el texto que se mostrar al usuario.
Title: Este argumento es opcional y es el ttulo de la ventana a mostrar.
Default: Este argumento es opcional y es un valor que aparece por default en el textbox.
ReturnValue: Es el valor que el usuario ingres, ste debe asignarse a una variable.
Ejemplo:
Dim intUserValue as Integer
intUserValue = InputBox(Cuntos artculos desea comprar?, Compra, 1)
Funciones de conversin de tipos de datos

CByte: Convierte una expresin al tipo de datos Byte.

CCur: Convierte una expresin al tipo de datos Currency. (Moneda)

CLng: Convierte un dato a un tipo Long.

CInt: Convierte un dato a un tipo Integer.

CStr: Convierte una expresin a un tipo de datos String.

CDbl: Convierte una expresin al tipo de datos Double.


Ejecucin de una aplicacin

Para ejecutar nuestra aplicacin y ver el formulario tal como lo


ver el usuario presionamos el botn o la tecla F5.
Ejercicio (Invocar Procedimientos)
Abrir el Editor de Visual Basic
Insertar un Modulo
Insertar el siguiente procedimiento:
Public Sub ElevaAlCuadrado(a as Integer)
Dim resultado as Integer
resultado = a * a
MsgBox El nmero elevado al cuadrado es: & resultado
End Sub
En el mismo mdulo agregar el siguiente procedimiento que llamar al procedimiento ElevaAlCuadrado:
Public Sub Llamada()
Dim intNumero as Integer
intNumero = InputBox(Proporciona un nmero para elevarlo al cuadrado)
Call ElevaAlCuadrado(intNumero)
End Sub
Ejecutar la aplicacin teniendo seleccionado el cdigo del procedimiento Llamada
Ejercicio (Invocar Funciones)
Public Function FncConcatena(strCadena1 As String, strCadena2 As String) As String
Dim resultado As String
resultado = strCadena1 & strCadena2
FncConcatena = resultado
End Function

Public Sub FormaCadena()


Dim Texto1 As String
Dim Texto2 As String
Dim TextoResultante As String

Texto1 = InputBox("Proporcione la primer cadena")


Texto2 = InputBox("Proporcione la segunda cadena")
TextoResultante = FncConcatena(Texto1, Texto2)
MsgBox TextoResultante
End Sub
Funciones VBA

IsNumeric: Regresa verdadero si la variable es un valor numrico.


IsDate: Regresa verdadero si la variable es una fecha.
IsNull: Regresa verdadero si la variable est vaca.
MsgBox: Despliega un cuadro de dialogo con un mensaje especfico.
InputBox: Muestra un cuadro de dilogo que solicita la entrada del usuario.
Now: Regresa la fecha y hora actual del sistema.
Date: Regresa la fecha actual del sistema.
DateAdd: Agrega un intervalo de tiempo a una fecha especificada.

https://exceltotal.com/funciones-vba/
Funciones Matemticas

Visual Basic ofrece serie de funciones matemticas las cuales


permiten realizar clculos dentro de un programa.
PRCTICA 1
Ejercicio 3
Duracin 20 Minutos
Construcciones With. End With

Esta construccin nos permite realizar varias operaciones sobre un mismo objeto.
Ejemplo:
Sub CambiarFuente1()
Selection.Font.Name=Times New Roman
Selection.Font.Size = 12
Selection.Font.Underline = xlunderlinestyleSingle
Selection.Font.ColorIndex = 5
End Sub
Sub CambiarFuente2()
With Selection.Font
Font.Name=Times New Roman
Font.Size = 12
Font.Underline = xlunderlinestyleSingle
Font.ColorIndex = 5
End With
End Sub
Controlar la ejecucin

Algunos procedimientos de VBA comienzan en la parte superior y progresan lnea a


lnea hacia abajo, sin embargo muchas veces se requiere el control del flujo de los
programas omitiendo algunas instrucciones, ejecutando otras instrucciones varias
veces y comprobando que har la rutina a continuacin, entre las posibles opciones
que ofrece VBA para el control del flujo de las macros se tienen las siguientes:
Instrucciones goto
Construcciones if then
Construcciones Select case
Ciclos
For next
Do Loop
Construcciones For Each Next

Este tipo de construccin se aplica a un grupo de objetos relacionado


(Coleccin), para utilizarla no es necesario saber cuantos elementos hay en
la coleccin.

For Each elemento In Grupo


[Instrucciones]
exit for
[Instrucciones]
Next elemento
Construcciones For Each Next

El siguiente ejemplo cierra todas las hojas excepto el libro activo:

Sub CloseInactive()
Dim Book as Workbook
For Each Book In Workbooks
If Book.Name <> ActiveWorkbook.Name Then
Book.Close
End If
Next Book
End Sub
Construcciones For Each Next

El siguiente ejemplo convierte los contenidos de una celda


seleccionada en maysculas.

Sub MakeUpperCase()
Dim cell as Range
For Each cell in Selection
Cel.Value = Ucase(cell.Value)
Next Cell

End Sub
Construcciones IF. THEN

Estructura:

If condicin then
Sentencia1
Else
Sentencia2
End If
PRCTICA 2
Ejercicios 1 y 2
30 Minutos
Instrucciones goto
Esta instruccin transfiere la ejecucin de un programa a una nueva instruccin que
debe estar precedida por una etiqueta.

En el libro Ejercicios agregar la siguiente Macro y probar:

Sub GoToDemo()

Dim sNep As String


sNep = InputBox("Introducir el Nep")

If sNep <> "50044" Then


MsgBox "Incorrecto"
Exit Sub
Else
GoTo UNO
End If

UNO:
MsgBox "Correcto"

End Sub
Construcciones Select Case

Es una alternativa a la construccin If Then.


Cuando se tienen varias posibles condiciones a evaluar.
Estructura:

SELECT CASE expresin_a_comprobar


CASE VALOR1
[Instrucciones]
CASE VALOR2
[Instrucciones2]
CASE ELSE
[Instrucciones0]
END SELECT
Ejercicio
En el libro Ejercicios agregar la siguiente Macro y probar:

Sub SelectCaseDemo()

Dim Numero as Integer


Numero = 8
SELECT CASE Numero
Case 1 To 5
Msgbox Entre 1 y 5
Case 6, 7, 8
Msgbox Entre 6 y 8
Case Else
Msgbox No est entre 1 y 8
END SELECT

End Sub

** Ejecutar la macro con diferentes valores.


** Modificar la Macro para que en lugar de obtener el nmero desde cdigo, sea a travs de un InputBox.
Ciclo FOR NEXT

Este ciclo repite un grupo de instrucciones especficas un cierto


nmero de veces.
Estructura:
For contador = inicio To fin [Step incremento]
[Instrucciones]
[Exit For]
[Instrucciones]
Next [contador]
Ejercicio

En este ejemplo se utiliza la instruccin For Next para mostrar un Msbox


con nmeros del 1 al 10.

Sub Cuenta()
Dim i as Integer
i=1
For iCuenta = i To 10
Msgbox iCuenta
Next iCuenta
End Sub
Ciclo Do Loop

Repite un bloque de instrucciones siempre y cuando o hasta que


una condicin se cumpla.
Estructura:

Do [{While/Until} condicin]
[instrucciones]
[Exit do]
[instrucciones]
Loop
Ejemplo

El siguiente ejemplo muestra un Msgbox con el valor de la variable iContador siempre y cuando esta tenga un valor menor o igual a 13.

Sub DoWhileDemo()

Dim iContador As Integer


iContador = 1

Do While iContador <= 13

MsgBox iContador
iContador = iContador + 1

Loop
End Sub
PRCTICA 2
Ejercicios 3, 4, 5, 6 y 7
3 horas
Ejecucin de Macros con Eventos

Las macros se ejecutan siempre que un evento sucede, por ejemplo, al dar clic a un
Botn.
Sin embargo Excel tiene sus propios tipos de eventos.

Tipos de eventos que Excel controla:

Eventos de libro de trabajo


Eventos de hoja de trabajo
Eventos de grfico
Eventos de aplicacin
Eventos de UserForm
Eventos de libro de trabajo

Tienen lugar para un libro de trabajo en particular, tales como:

Open: Se abre o se cierra un libro de trabajo.

BeforeSave: El libro est a punto de ser guardado.

NewSheet: Cuando se aade una nueva hoja al libro.


Eventos de hoja de trabajo

Tienen lugar en una hoja de trabajo en concreto.

Change: Cuando se realiza un cambio en una celda en la hoja.

SelectionChange: Cuando el usuario mueve el indicador de la celda actual.

Calculate: Se vuelve a calcular la hoja de trabajo.


Eventos de grfico

Tienen lugar en un grfico en concreto.

Select: Cuando se selecciona un objeto dentro de un grfico.


SerieChange: Cuando el valor de un punto de una serie de datos cambia.
Eventos de aplicacin

Tienen lugar en la aplicacin, en este caso Excel.

NewWorkbook: Cuando se crea un nuevo libro de trabajo.


WorkbookBeforeClose: Cualquier libro de trabajo antes de cerrarse.
SheetChange: Cuando se modifica una celda de cualquier libro de trabajo
abierto.
Eventos de UserForm

Tienen lugar en un formulario en particular o en un objeto


contenido en el formulario. Por Ejemplo:

Inizialize: Se produce antes de que el formulario se muestre.


Click: Cada botn de comando contiene este evento, se produce al pulsar el
botn.
Secuencias de eventos

Algunas acciones realizadas en un libro de Excel pueden


desencadenar varios eventos.
Por Ejemplo: Al aadir una hoja de trabajo nueva en un libro se
desencadenan tres eventos:

WorkbookNewSheet: Se desencadena por agregar la nueva hoja de trabajo.


SheetDeactivate: Desactiva la hoja en la que se encontraba actualmente.
SheetActivate: Se activa la hoja recin aadida.
Ejercicio

Entrar al evento clic del CommandButton.

Asignar a la variable a el valor correspondiente a el texto introducido en el Text1.

Asignar a la variable b el valor correspondiente a el texto introducido en el Text2.

** Cambiar del tipo cadena al tipo Entero


PRCTICA 3
1 Hora
Control de Errores

Los errores en VBA pueden agruparse en varios tipos:

Errores de sintaxis
Errores de compilacin
Errores lgicos
Errores de Sintaxis

Se cometen al codificar palabras reservadas incompletas, olvidar


cerrar comillas o un parntesis, entre otros.

El editor de VB permite detectarlos y enva un mensaje de error.


Errores de compilacin

Estos errores se encuentran al momento de compilar el cdigo


(antes de ejecutar un procedimiento).

Puede ser una llamada a un procedimiento o funcin que no existe


Errores lgicos

Estos errores solamente se detectan cuando se prueba el cdigo y


no se obtienen los resultados esperados.
VBA cuenta con un objeto llamado Err, el cual contiene la
informacin de la ejecucin del cdigo, cuando se realiza una
operacin no permitida su valor es diferente de cero.
Cuando se produce un error en tiempo de ejecucin, las
propiedades del objeto Err se llenan de informacin que
identifican al error de forma nica.
PRCTICA 4
20 Minutos
Complementos

Es un archivo de Excel, con ciertas caractersticas especiales en el


cual podemos crear macros o funciones que extienden las
posibilidades de Excel.

Veamos primero un complemento ya incluido en Excel.


Ir al men Archivo -> Opciones -> Complementos-> Complementos de Excel
-> Ir.
PRCTICA 5

También podría gustarte