Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I. INFORMACION GENERAL
1. Pre-requisito: Excel Avanzado
2. Duración: 24 Horas Pedagógicas (50min /Hora)
3. Metodología: Teoría 10% – Practica 90%
II. OBJETIVOS
Crear macros usando el grabador de macros o usando el editor VBA
Crear funciones
Entender la teoría de objetos
Hacer uso de los Userforms
Dominar la técnica de programación con VBA, siendo capaz de manejar una hoja de
cálculo utilizando VBA
Sesión 2
Msgbox
Inputbox
Información en líneas
Errores de macros
Errores de digitación
Variables no declaradas
Corregir errores
Depurar líneas de código
Variables
Declarar variables a objetos
Reglas
Tipos de variables
Programación básica
Sesión 3
Controles de formulario
Tipos de controles de formulario
Controles ActiveX
Propiedades de los controles ActiveX
Control cuadro de texto
Control cuadro de lista
Control cuadro combinado
Control casilla de verificación
Control botón de opción
Formularios en Vba
Mostrar/ocultar cuadro de herramientas
Controles del cuadro de herramientas
Diseño de un formulario
Cambiar nombres a los controles
Abrir formularios desde la hoja de cálculo
Programando controles de formulario
Sesión 4
Estructuras de decisión
If then else
If then
If...then...else
If...then...elseif
If and
If or
Select case
Case is
Case to
Delimitar valores
Declarando variables
Sesión 5
Bucles de repetición
For … next
While wend
Do while loop
Do until ... Loop
Do ... Loop while
Do ... Loop until
For-each-in-next
Sesión 6
Funciones
Definición
Funciones nativas
Uso de la propiedad: fórmula
Funciones de librería en Vba
Funciones de conversión de tipos
Funciones UDF (funciones definidas por el usuario)
Sesión 7
Aplicaciones
IV. METODOLOGÍA
Las sesiones se desarrollarán de forma teórica y mayormente práctica (inductivo –
deductivo), el alumno tendrá una exigencia total en los temas de interés relacionados con
el curso, al término de cada sesión se tendrá una práctica referente al tema expuesto.
V. RECURSOS DE ENSEÑANZA
Medios: Clases teórico – prácticas con ayuda audiovisuales. Referente al tema, Material
adicional vía correo electrónico.
Materiales: Separata y/o prácticas del módulo a desarrollar, pizarra acrílica, plumones,
proyector multimedia.
VI. EVALUACION
Los elementos de evaluación serán exámenes escritos y prácticos, intervención del alumno
y trabajos asignados
PF=EF+TP+ > 13, 0
2
EF: Examen Final.
TP: Promedio de trabajos prácticos.
VII. BIBLIOGRAFIA
• Manual de Infouni
Barra de Menú (1).- Presenta los comandos que se usan para trabajar con Visual Basic.
Además de los menús estándar Archivo, Edición, Ver, Ventana y Ayuda, contiene otros menús
para tener acceso a funciones específicas de programación, como Formato, Depuración,
Ejecutar, etc.
Barra de Herramientas (2).- Permite un acceso directo (solo un clic) a muchas de las
operaciones más frecuentes utilizadas durante el desarrollo de aplicaciones.
Espacio de trabajo (3).- Es el lugar en el cual se van a mostrar las ventanas de proyectos
según el tipo de trabajo que se va a ejecutar. Estas ventanas son: Ventana de Módulo o
Código y Ventana de Formulario o Diseño.
Explorador de proyectos (4).- Ventana superior izquierda, permite visualizar los objetos que
contiene el proyecto actual agrupados por categorías. Además en la parte superior izquierda
de esta ventana hay dos botones que nos permiten intercambia r a la vista de hoja de
cálculo o a la ventana de código en la ventana del proyecto.
Ventana de propiedades (5).- Situada debajo del explorador de proyectos, contiene el
conjunto de propiedades, con el valor actual correspondiente, de cada uno de los objetos. Es
aquí donde podremos modificar los valores iniciales de esas propiedades, en lo que se conoce
como tiempo de diseño.
VENTANAS DE PROYECTOS
VENTANA CÓDIGO
La ventana o editor de código de Visual Basic proporciona de manera automática información
relevante a medida que se ingresa código. El código está compuesto por instrucciones que le
da a la máquina. Esas instrucciones se ejecutan, pero no necesariamente resultan visibles al
usuario durante la ejecución. En pocas palabras aquí es donde escribirá el código.
Para ejecutar la ventana de código debe asegurarse de que esté ubicado en el módulo
apropiado como puede ser una hoja de Excel, un objeto de control, o en un módulo.
A continuación las formas de mostrar la ventana de código.
MÓDULOS EN VBA
Un módulo se utiliza para recopilar bajo un nombre un conjunto de declaraciones,
instrucciones y/o procedimientos. Los módulos estándar de Excel, que son los más comunes
y más fáciles de escribir, incluyen solo objetos predefinidos o "estándar".
Todo código pesado resulta más conveniente escribirlo y almacenarlo en un modulo
TIPOS DE MÓDULOS
En Excel existen dos tipos de módulos:
El Módulo Estándar
El Módulo de clase
INSERTAR MÓDULOS
1ra forma: Hacer un clic en el menú Insertar / Módulo
2da forma: Hacer un clic con el botón derecho en el nombre del
proyecto (VBAProject (Libro1)) / insertar / módulo.
Y se insertará una carpeta llamada Módulos, en ella el módulo1
RENOMBRAR
Seleccionar el módulo / presionar F4 o ir al
menú Ver / Propiedades
En el panel propiedades hacer un doble clic
en la propiedad NAME, digitar el nuevo
nombre.
Nota: Los nombres a utilizar no deben tener
espacios en blanco ni deben empezar con
números ya que generaría un error.
QUITAR
1ra Forma: A través de la ventana del explorador
de proyectos, hacer un clic con el botón derecho
en el módulo, luego hacer un clic en la opción
Quitar
2da Forma: Seleccionar el módulo, ir al menú Archivo / Quitar.
En ambos casos muestra un mensaje indicando si desea exportar para mantener el módulo o
eliminarlo en definitiva. Elija la opción según sea necesario.
VENTANA FORMULARIOS
Los forms (o formularios) son lo que también se llamarían una "ventana" o “cuadro de diálogo”
que en realidad es una superficie que contiene controles, como por ejemplo un botón o una
zona para escribir texto, y que se muestra visible en algún momento de la ejecución. A
continuación, formas de mostrar la ventana del formulario.
A) Seleccione el menú Insertar, hacer un clic en UserForm.
PROCEDIMIENTOS Y TIPOS
Un procedimiento es básicamente una unidad de código informático que realiza alguna acción.
Existen dos tipos de procedimientos y son: Sub o Function
EL PROCEDIMIENTO SUB que es la abreviación de la palabra subrutina no es más que un
conjunto de instrucciones que se ejecutarán una por una hasta llegar al final de la subrutina
que está especificado por el procedimiento End Sub.
PRINCIPIOS FUNDAMENTALES
La programación en VBA puede ser un tanto misteriosa para la mayoría de los usuarios de
Excel, sin embargo una vez que se comprenden los principios básicos de programación en
VBA se comenzarán a crear soluciones robustas y efectivas.
La Programación Orientada a Objetos (POO) el cual se basa en las interacciones de objetos
se compone de elementos y características. Los elementos de la POO, pueden entenderse
como los materiales que necesita para diseñar y programar un sistema, mientras que las
características, podría asumirse como las herramientas de las cuáles dispone para construir
el sistema con esos materiales
Application
El segundo concepto importante a entender es que cada uno de estos objetos tiene
PROPIEDADES y MÉTODOS.
Las propiedades de un objeto nos ayudan a describirlo mejor en todo momento
Los métodos son las acciones que puede realizar con dicho objeto
Por Ejemplo:
El objeto WORKBOOK tiene
Propiedades como:
ActiveSheet (Hoja activa), Name (Nombre), ReadOnly (Solo Lectura), Saved (Guardado)
Cells
Propiedades Métodos
MACROS
Las Macros en Excel son un conjunto de instrucciones que se ejecutan de manera secuencial
por medio de una orden de ejecución, claro está que una Macro puede invocar a otras Macros,
logrando de esta forma obtener operaciones cada vez más complejas.
CREAR UNA MACRO (EL PROCEDIMIENTO SUB)
Para crear una macro se utiliza el procedimiento Sub que es la abreviación de la palabra
subrutina en el cual se agregan el conjunto de instrucciones que se ejecutarán una por una
hasta llegar al final de la subrutina que está especificado por el procedimiento End Sub.
SINTAXIS
La macro se representa con un nombre el cual debe ser especificado justo después de la
instrucción Sub y seguido por los paréntesis.
O también
[Private] [Public] [Static] Sub Nombre-de-Subrutina (lista-argumentos)
Instrucciones
End Sub
Las partes entre corchetes indican que son opcionales. Además:
Public. Indica que la subrutina puede ser llamada por todas las demás subrutinas sin importar
donde se encuentre.
Private. 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.
Estas macros se crean desde diferentes puntos como pueden ser:
MACRO DESDE LA VENTANA DE CÓDIGO
1. Abre la ventana de código (menú insertar / módulo)
2. Escribe El texto Sub seguido del nombre que le dará a la macro por ejemplo INICIO y el
paréntesis abierto y cerrado como muestra la imagen siguiente, luego presione Enter.
Automáticamente en la parte inferior se mostrará el
texto End Sub indicando el final de las instrucciones
(NO BORRAR End Sub)
3. Escribe el o los procedimientos que ejecutará la macro en forma ordenada. Por ejemplo:
3. Escribe el o los procedimientos que ejecutará la macro en forma ordenada. Por ejemplo:
4. Cierre el Editor de Visual Basic. En la hoja de Excel desactive el icono modo Diseño (Ficha
Desarrollador / Grupo controles / Modo Diseño). Hacer un clic en el botón y ejecutará las
instrucciones asignadas.
SEGURIDAD DE MACROS
La seguridad es un tema importante ya que al abrir algún archivo que contenga una macro
maliciosa puede causar algún tipo de daño al equipo. De manera predeterminada Excel no
permite ejecutar macros automáticamente.
Si está creando una macro propia y desea quitar la protección porque sabe que no existe
código malicioso, entonces modifique la configuración de seguridad de las macros como se
describe a continuación:
- Seleccione la opción Habilitar todas las macros / active la casilla Confiar en el acceso al
modelo de datos del proyecto de VBA / clic en Aceptar.
Range(“A1”) = “Excel”
Signo de comparación
Range(“A1”).Font
También, cada vez que se coloca el punto seguido al nombre del objeto se activa una lista de
propiedades, busque en la lista y seleccione la propiedad a utilizar.
Se ven las propiedades así como los métodos al momento de introducir el punto después del
nombre del objeto. Se distingue entre las propiedades y métodos porque tienen iconos
diferentes. Los métodos son los que tienen el icono de color verde. Y las propiedades son los
que tienen el icono con la manito.
También puede mostrar la lista de propiedades y métodos de cada objeto en la ventana del
Examinador de Objetos. Esta ventana se abre presionando la tecla F2 o desde el menú Ver /
Examinador de Objetos.
OBJETOS PREDETERMINADOS
Existe una funcionalidad intrínseca de VBA conocida como objetos predeterminados la cual
nos permite omitir la escritura de algunos objetos y aun así tener un código funcional.
Por ejemplo el objeto Application se puede omitir ya que esto hace referencia al programa de
Excel. Lo mismo puede ser con los objetos Activeworkbook (se refiere al libro que se está
utilizando) y ActiveSheet (se refiere a la hoja actual en la cual se está trabajando) y la
funcionalidad del código será la misma.
OBJETO RANGE
El objeto Range, que es la representación de una celda (o celdas) en la hoja de cálculo, es el
objeto más importante de Excel VBA.
Con los ejemplos se tiene una visión general de las propiedades y métodos del objeto Range.
SELECT (SELECCIÓN)
Un método importante para el objeto Range es el método Select. Este método permite
seleccionar una celda o un rango de celdas.
SELECTION
Con Selection puede cambiar o establecer propiedades al rango seleccionado
Sub Selecciono()
Range("B2").Select
Selection.Value = "Dame un like si te gusta"
Selection.Font.Name = "Monotype Corsiva"
End Sub
Sub Selecciono()
Range("B2").Select
Selection.Entirerow.Insert
End Sub
VALUE
Con Value puede establecer un valor en un rango seleccionado a partir de un dato ingresado
o calculado
Sub Selecciono()
Range("A2").Value = "Más fácil no hay"
End Sub
Sub Selecciono()
Range("A2").Value = 25 * 12
End Sub
COPIAR / PEGAR
Los métodos Copy y Paste se utilizan para copiar un rango y pegarlo en otro lugar de la hoja
de trabajo.
Range("A1:A2").Select
Selection.Copy
Range("C3").Select
ActiveSheet.Paste
También puede utilizar el código en una sola línea el cual hace exactamente lo mismo que el
anterior
Range("C3:C4").Value = Range("A1:A2").Value
LIMPIAR
Para borrar el contenido de un rango de Excel, puede utilizar el método ClearContents.
Range(“A1”).Clearcontents
o simplemente utilizar:
Range("A1").Value = ""
CELLS (CELDA)
En vez de Rangos, también puede utilizar las celdas. El uso de celdas es particularmente útil
cuando se quiere recorrer rangos.
UNA CELDA
Ingresar el número 2 en la celda A3
Sub Ingresar()
Cells(3, 1).Value = 2
End Sub
UN RANGO DE CELDAS
Ingresar el número 5 en el rango de celdas A1:A4
Sub Ingresar()
Range(Cells(1, 1), Cells(4, 1)) = 5
End Sub
CARACTERES DE CONTINUACIÓN
Al combinar un espacio seguido de un guión bajo “ _”, se utiliza para poder saltar la línea de
código y así no perder la visibilidad en la pantalla, aunque tiene alguna restricción, no se
puede utilizar para continuar una línea de código dentro de una expresión de tipo cadena.
AÑADIR SANGRÍAS
Las tabulaciones nos permiten una mayor legibilidad del código. Es especialmente
recomendado utilizarlo en las estructuras de control y decisión.
MSGBOX
Los cuadros de mensaje ofrecen un modo simple y rápido de consultar información simple o
para permitir tomar decisiones. Puede usar esta función para mostrar diferentes tipos de
mensaje y botones con los cuales se pueda tener una respuesta.
SINTAXIS
MsgBox(Prompt,[Buttons],[Title],[Helpfile],[Context])
Tittle
“AVISO”
Buttons Prompt
vbInformation “Bienvenido a VBA”
MENSAJE EN LÍNEAS
Inserte el botón de comando, hacer un doble clic para
ingresar al editor de Visual Basic y digite un mensaje
siguiente.
MsgBox ("Excel Básico" & Chr(13) & "Excel Intermedio")
INPUTBOX
Muestra un mensaje en un cuadro de diálogo, espera que el usuario escriba un texto o haga
clic en un botón y devuelve un tipo de dato como texto que es el contenido ingresado en el
cuadro de texto.
SINTAXIS
Inputbox( Prompt,[Title],[Default],[Xpos],[Ypos],[Helpfile],[Context])
Prompt Tittle
“Ingrese el nombre del Producto” “COMERCIAL AAA”
INFORMACIÓN EN LÍNEAS
Cuando desea poner en dos líneas utilice el ampersand, luego digite Chr(13), esto es como
si presionara Enter, digite el segundo texto entre comillas, luego digite el título que debe tener
la ventana
ERRORES DE MACROS
Los errores se dan cuando se están ingresando datos incorrectos en la línea de código como
pueden ser errores de digitación o variables no declaradas.
ERRORES DE DIGITACIÓN
Inserte un botón de comando (control activeX) en la hoja de Excel, hacer un doble clic, en la
ventana de código escribe las siguientes instrucciones:
x=2
Range("A1").Valu = x
Esta ventana de error se muestra porque no reconoce al texto “Valu” que es una propiedad
mal digitada, lo correcto era digitar Value.
VARIABLES NO DECLARADAS
Inserte un botón de comando (control activeX) en la
hoja de Excel; hacer un doble clic en el botón.
En la ventana de código escribe Option Explicit al
inicio del código como se muestra en la imagen ---►
CORREGIR ERRORES
En el Editor de Visual Basic, haga clic en
Restablecer para detener el depurador ------►
Debajo de Private Sub … digite lo siguiente
Dim x As Integer
Para verificar o comprobar que no haya más errores presione el botón Continuar. En este
procedimiento debe limpiar la franja pintada de color amarillo
VARIABLES
Una variable es un nombre que hace las funciones de contenedor polivalente que puede
albergar distintos valores o datos los cuales dependerá de la clase de dato que desea guardar
dentro de ellas
Hay que tener en cuenta que Excel interpreta de forma inteligente el tipo de variable a la que
nos estamos refiriendo. Es decir, la variable se refiere a valores numéricos, pero en otros
casos pueden ser textos, fechas, etc.
Ese "reconocimiento inteligente" que hace Excel del tipo de variable, requiere la utilización de
más memoria en el equipo (debido a que asigna por defecto un tipo de variable-comodín
llamado "variant") y por lo tanto es conveniente facilitarle las cosas indicando en lo que se
llama una "declaración de variable".
Si no se declara la variable tomará como tipo de dato Variant (tipo de variable que almacena
todo tipo de información). El tipo variant ocupa 20 bytes. Cosa que no es recomendable
De ahí se recomienda que la variable sea declarada. Y es más fácil de hacer modificaciones
¿Por qué declarar variables?
Básicamente es para tener más ordenado la codificación. Si declara las variables:
• Ocuparán menos espacio en memoria.
• Nuestra macro será difícil de interpretar para otros usuarios que puedan necesitar leer el
código VBA (incluso para nosotros mismos). Tener al principio de la macro una lista con
las variables declaradas resulta muy útil y aclarador.
• Podría utilizar esa variable posteriormente en varias macros.
REGLAS
Las variables a declarar deben seguir ciertas reglas determinadas:
◾ La denominación de la variable debe empezar con una letra y no con un número.
◾ No debe de tener más de 250 caracteres.
◾ No puede emplearse las palabras reservadas para la sintaxis de la propia Excel. Por
ejemplo no puede llamar a una variable con el nombre de WorkSheet etc.
◾ Debe consistir en una cadena continua de caracteres. Por ejemplo no puede emplear como
nombre “mi variable” pero sí “mi_variable”.
TIPOS DE VARIABLES
Existen tipos de datos diferentes con los que se puede trabajar. Por ejemplo al declarar una
variable en VBA basta añadir una línea de código para definir la naturaleza de los valores que
almacenaremos en ella. Estos son:
INTEGER (ENTERO)
La variable Integer se utiliza para almacenar números enteros.
Dim x As Integer Declarar x como valor entero
x=6 “X” es igual a 6
Range ("A1").Value = x El contenido de la celda A1 es igual
al valor de 6
DOUBLE (DOBLE)
Una variable de tipo Double es más precisa que una variable de tipo entero y también puede
almacenar números decimales.
CURRENCY (MONEDA)
El tipo de dato Moneda es en realidad un tipo entero internamente pero que como resultado
muestra con el símbolo monetario y dos decimales.
Dim celdita As Currency
celdita = 24
Range("A3").Value = celdita
BOOLEAN (LÓGICA)
Una variable de tipo lógico es aquella que puede
almacenar solamente dos valores: Falso o
Verdadero.
Dim continue As Boolean
continue = True
If continue = True Then MsgBox "Es Verdadero"
OTROS
Byte: corresponde a una variable de 8 bits que puede almacenar valores de 0 a 255. Es muy
útil para el almacenamiento de datos binarios.
Long: es un número de 32 bits. Las variables Long sólo pueden contener valores enteros.
Decimal: El Decimal es un subtipo de dato Variant. Tiene una precisión de hasta 28 decimales
Single: Es un número de 32 bits que se utiliza para números decimales.
Object: Se utiliza Object cuando en el tiempo de compilación no se conoce a qué tipo de
datos puede señalar la variable. Son de acceso más lento que las variables que tienen un tipo
explícito.
Variant: Los Variant almacenan valores numéricos y no numéricos. Son los más flexibles de
todos los tipos disponibles, ya que almacena valores muy grandes de casi cualquier tipo
(coincide con el tipo de dato numérico doble). Se recomienda evitar utilizar ya que hace más
pesado el archivo.
OPTION EXPLICIT
Ésta obliga a declarar las variables que no haya declarado dando la alerta de la variable no
declarada. Hay dos formas para utilizar la declaración de variables obligatorias y son:
VARIABLE LOCAL
Consiste en digitar “Option Explicit” al
principio de la línea de código
generando una línea de división entre
el procedimiento sub o function.
VARIABLE PREDETERMINADA
Para predeterminar la variable seleccione el Menú herramientas en el Editor de Visual Basic,
hacer un clic en Opciones, en la pestaña Editor activar la casilla “requerir declaración de
variable”
PROGRAMACIÓN BÁSICA
LIBROS
CREAR UN LIBRO ABRIR UN LIBRO
Sub Libritos() Sub AbreLibritos()
Dim nuevo As Workbook Workbooks.Open "Ejemplo.xlsx"
Set nuevo = Workbooks.Add End Sub
End Sub
CERRAR UN LIBRO ACTIVO
GUARDAR UN LIBRO Sub CierraLibritos()
Sub GuardaLibritos() Workbooks.Close
Dim nuevo As Workbook End Sub
Set nuevo = Workbooks.Add
nuevo.SaveAs "Ejemplo.xlsx"
End Sub
HOJAS
INSERTAR HOJA MOVER HOJAS
Sub Hojitas() Sub MoverHojitas()
Sheets.Add Worksheets("Hoja5").Move
End Sub after:=Worksheets("casos")
End Sub
INSERTAR UNA HOJA ANTES DE UNA
HOJA ESPECÍFICA
ELIMINAR HOJAS
Sub Hojitas()
Sub MoverHojitas()
ActiveWorkbook.Sheets.Add
Sheets("Hoja3").Delete
before:=Worksheets("casos")
End Sub
End Sub
CONTROLES DE FORMULARIO
Los controles de formulario en Excel son objetos que puede colocar dentro de una hoja y que
darán funcionalidad adicional para interactuar mejor con los usuarios y tener un mejor control
sobre la información.
Para insertar cualquiera de los controles de formulario seleccione la ficha desarrollador, luego
hacer un clic en el botón Insertar y observará cada uno de ellos, seleccione del menú
desplegable y dibuje haciendo un arrastre en diagonal hasta encontrar el tamaño adecuado
TIPOS DE CONTROLES DE FORMULARIO
Existen diferentes tipos de controles de formulario en Excel que
ofrecen diversos tipos de funcionalidad e interacción con el usuario.
Desde una simple etiqueta hasta controles que permiten una
selección múltiple de sus opciones. Entre los controles están:
Etiqueta. Permite especificar un texto o breves instrucciones en el
formulario.
Cuadro combinado. Es una combinación de un cuadro de texto con un cuadro de lista.
Cuadro de lista. Muestra una lista de valores de los cuales puede elegir una sola opción o
múltiples opciones de acuerdo a la configuración del control.
Control de número. Aumenta o disminuye un valor numérico.
Barra de desplazamiento. Al hacer clic en las flechas se va desplazando la barra dentro de
un intervalo predefinido.
Botón. Permite ejecutar una macro al momento de hacer clic sobre él.
Casilla de verificación. Permite la selección o no selección de una opción.
Botón de opción. Permite una única selección dentro de un conjunto de opciones.
Cuadro de grupo. Agrupa varios controles dentro de un rectángulo.
CONTROLES ACTIVEX
Los controles ActiveX son un tipo de controles que permiten agregar
funcionalidad de formularios a los libros de Excel.
Los controles ActiveX comenzaron a ser utilizados a partir de Excel
97 y ofrecen más posibilidades de configuración y formato.
Para ver las propiedades de un control ActiveX debe estar activado el botón Modo Diseño el
cual permitirá seleccionar el control y posteriormente ver sus propiedades. Cada tipo de
control ActiveX mostrará una ventana de Propiedades con sus propias características.
Esto mostrará el Editor de Visual Basic con una subrutina para el evento Click() donde puede
escribir el código respectivo.
FORMULARIOS EN VBA
Los forms (o formularios) son lo que también se llamarían "ventana" o “cuadro de diálogo” que
en realidad es una superficie que contiene controles, como por ejemplo un botón o una zona
para escribir texto, y que se muestra visible en algún momento de la ejecución.
CREAR UN FORMULARIO EN EXCEL
Para crear un formulario realice los siguientes procedimientos:
1. Abre el Editor de Visual Basic (Alt + F11)
2. Seleccione el menú Insertar, hacer un clic en UserForm
Otra forma
1. Abra el Editor de Visual Basic.
2. Presionar el botón derecho en el nombre del proyecto, seleccione la opción Insertar,
hacer un clic en UserForm
Nombre
Icono Nombre Real Nombre Común Descripción
Convencional
DISEÑO DE UN FORMULARIO
El diseño del formulario consiste en insertar los controles necesarios, organizar y distribuir de
tal forma que sea atractivo al momento de ejecutarlo tanto a la vista como a su aplicación
permitiendo controlar o ingresar datos en la hoja de cálculo.
El siguiente diseño es de un formulario para el registro de datos de alumnos:
MODELOS DE FORMULARIOS
Hacer un doble clic en el control Botón para abrir la ventana del Editor de Visual Basic y
digite la siguiente instrucción:
Escribe el nombre Escribe el evento que
del Formulario realizará el formulario.
Show = Abrir
Userform1.Show
Escribe: Userform1.Show
Se interpreta así:
Si la casilla (ChkAutocad) está activada entonces la celda A2 toma el valor de Autocad.
Se interpreta así:
El cuadro de texto TxtCant es igual al valor numérico del Spinbutton según la cantidad de
veces que presione dicho botón.
IMAGEN (Image)
Este control puede almacenar una imagen fija o puede mostrar una imagen diferente cada vez
que se realice una acción.
Se interpreta así:
Al ejecutar el formulario el cuadro imgLogo muestra la imagen (por
ejemplo: sam) según la ruta de almacenamiento y el nombre incluido con
el tipo o formato que se haya escrito entre comillas.
FORMULARIO (Userform1)
Una de las opciones por la cual se programa en la ventana del formulario es porque permite
mostrar valores predeterminados en algunos controles así como mostrar almacenado una lista de
datos y otros. Para programar en el formulario puede utilizar la propiedad Initialize o Activate.
Ejemplo del formulario que muestra valores por defecto
APLICACIONES
MOSTRAR/OCULTAR TABLAS
1.- Elaborar el siguiente diseño
2.- En el editor de Visual Basic inserta la ventana de módulo y crea las siguientes macros:
3.- Seleccione la casilla Perú (ChkPeru), luego hacer un doble y agregue la siguiente línea de
código
PRÉSTAMO A CLIENTES
1.- Elabore el siguiente diseño en la hoja de Excel
2.- Programe el botón Nuevo Cliente para que muestre la ventana del INPUTBOX solicitando
ingresar los datos del Cliente, el préstamo, la tasa y el número de plazos.
Al ingresar todos los datos, éstos se mostrarán almacenados en las celdas respectivas
incluyendo la operación que calcule la cuota a pagar.
Programe el botón Borrar Datos el cual muestre un mensaje informativo que indica que se
van a borrar los datos ingresados y que al aceptar deja limpio las celdas de la hoja de Excel
Programe el botón Cerrar libro el cual deberá cerrar el archivo de Excel guardando
automáticamente todos los cambios hechos.
PAGO AL PERSONAL
Programe el botón INGRESAR para que muestre el formulario con el cual se ingresarán los
datos y efectuando el cálculo respectivo
PALETA DE COLORES
1.- Elabore el siguiente diseño del Formulario
4.- Programe el botón Limpiar para borrar el contenido de cada cuadro de texto y el retorno
del regulador al inicio de la barra de desplazamiento
5.- Programe cada control de barra de desplazamiento para que cuando mueva el regulador
se pinte el cuadro de texto txtColor.
6.- Inhabilite los cuadros de texto txtRojo, txtVerde y txtAzul para impedir escribir un valor
7.- Inserte un control Botón de comando en la hoja de Excel y programe para abrir el formulario
elaborado
VOTO ELECTRÓNICO
1.- Elabore el siguiente diseño en la hoja de Cálculo de Excel
2.- Abre el editor de Visual Basic y crea una macro para cada imagen el cual al ejecutar deberá
almacenar el número e incrementarse cada vez que se haga un clic en la imagen
3.- Programe el botón NUEVO para que borre el contenido de las celdas B14 y F14
4.- Asigne la macro creada para cada imagen (Clic derecho / Asignar macro)
5.- Ejecute cada macro haciendo un clic varias veces en cada de las imágenes
2.- En la celda B5 utilizando Validación de datos, crea una lista con las marcas de vehículos
3.- Asigne un nombre personal a cada columna de modelos que hay según la marca
Rango E4:E11 / Nombre Personal / TOYOTA
Rango H4:H11 / Nombre Personal / HYUNDAI
Rango K4:K11 / Nombre Personal / NISSAN
4.- En la celda B6 crea una lista con la función INDIRECTO para que muestre los modelos
según la marca seleccionada.
Programe en el Editor de Visual Basic para que cuando elija una marca, en la lista de modelos
no se muestre nada hasta que seleccione de la lista de modelos.
5.- Abre el Editor de Visual Basic, luego hacer un doble clic en el icono Thisworbook en el
panel Explorador de Proyectos.
ESTRUCTURAS DE DECISIÓN
En VBA se encuentran disponibles las principales estructuras de programación o estructuras
de control para la creación de las macros.
Una de las estructuras de programación más comunes, sencillas y muy útiles para la
programación es la estructura IF THEN ELSE la cual se describe a continuación.
IF THEN ELSE
La instrucción If Then Else es una estructura condicional que permite ejecutar acciones en
función de si se cumple una condición.
La forma de la función IF es la siguiente:
If (condición) then
(lo que hace)
Else
(en caso contrario)
End If
También:
La forma de la función IF se expresa en una sola línea:
If (condición) then (lo que hace)
“En este caso cumple solo con el valor verdadero, si no cumple el resultado es vacío.”
IF THEN
Ejemplo1: Hallar el monto final según las siguientes condiciones:
Descuento: Si el monto es mayor a S/. 7,500 entonces aplique un descuento de 8%
Monto Final: Monto menos el Descuento
Ejemplo2: Comprobar que un número escrito en la celda activa sea mayor o igual a 13. Si se
cumple, muestra un mensaje diciendo "el valor es permitido". Si no se cumple, la macro
termina y no hace nada. (Debe tener seleccionado la celda donde haya escrito)
IF AND (SI(Y(…))
Ejemplo: Si su peso es menor o igual a 30, mostrar Flaco(a), si es menor o igual a 40, mostrar
Normal, si está entre 41 y 60, mostrar Gordo(a), si es mayor de 60 mostrar Obeso(a).
IF OR (SI(O(…))
Ejemplo: Si es Sábado o Domingo entonces que muestre “Día no laborable” de lo contrario
que muestre “Día laborable”.
SELECT CASE
Select Case es una alternativa a la declaración ElseIf. Este método es más eficiente y fácil de
leer en la codificación con respecto a la del Si Then Else.
La instrucción CASE se puede utilizar solamente en el código VBA en Microsoft Excel.
CASE IS
Con la instrucción CASE Excel, también puede
utilizar la palabra clave Is para comparar los valores
CASE To
Con la instrucción CASE Excel, también puede
utilizar la palabra clave To para especificar un
rango de valores.
DELIMITAR VALORES
Con la instrucción CASE Excel, también puede
delimitar valores utilizando los datos
separados con comas
.
DECLARANDO VARIABLES
Desarrollar un aplicativo para determinar el monto total a pagar por un número de entradas a
una determinada zona. El precio unitario de las entradas varía si se compra más de 3 o no,
así como también con un descuento adicional si el cliente cuenta con una tarjeta de crédito.
Antes de que se realice la compra, se le preguntará al cliente si tiene la tarjeta de crédito del
Club para aplicarle un descuento. Si el cliente responde que SI, se entregará un precio final
con descuento, caso contrario se entregará el precio original.
BUCLES DE REPETICIÓN
FOR … NEXT
Esta estructura sirve para repetir un conjunto de instrucciones hasta alcanzar el límite que
haya especificado.
La estructura es la siguiente:
Variable.- Inicie con un nombre para la variable que irá contando cada una de las repeticiones
como por ejemplo: X, i, ultimafila, etc. el cual representará al valor numérico formado por el
rango entre el valor_inicial y el valor_final.
Es común encontrar la instrucción escrita como For i = 1 lo cual indica que la variable i llevará
la cuenta de las repeticiones que deseamos que inicien en 1.
Inicio.- Valor numérico con el cual se iniciará el ciclo. Mayormente toma el valor de 1
Límite.- Además de inicializar la variable que llevará la cuenta de las repeticiones, especifique un
número como límite donde se detendrá el ciclo. Este límite es indicado con la instrucción To.
Instrucciones.- Conjunto de instrucciones que la estructura For irá repitiendo hasta llegar al
valor límite establecido.
Incrementar.- El final del conjunto de instrucciones se indica con la instrucción Next y que va
seguida del nombre de la variable que lleva la cuenta para incrementar su valor en uno.
Ejemplo: Llenar el rango de las celdas A1 hasta A5 con el valor de 20
Ejemplo4: Multiplicar fila por fila desde A2 hasta B7 y mostrar el resultado en la columna C
WHILE WEND
Esta es una instrucción en la que no se sabe de antemano cuantas veces se repetirá el ciclo
por lo tanto debe haber una condición para salir del ciclo, en caso contrario el ciclo se repetiría
en forma indefinida.
DO WHILE LOOP
Esta es una estructura en la que no se sabe cuántas veces se repetirá el ciclo al igual en la
estructura While-Wend y como en esta debe haber una condición para salir de él ya que en
caso contrario este se repetiría en forma indefinida. La evaluación de la condición se produce
antes de entrar al ciclo.
Usted puede utilizar el Do While ... Loop para probar una condición al inicio del bucle. Se
ejecutará el bucle en tanto la condición es verdadera y se detiene cuando la condición se
convierte en falsa.
Una cosa a tener cuidado es que a veces el bucle puede ser un bucle infinito. Y ocurre cuando
la condición no es falsa. En tal caso, se puede detener el bucle presionando la tecla Esc o las
teclas Ctrl + Enter
Esta es una instrucción en la que no se sabe de antemano cuantas veces se repetirá el ciclo
por lo tanto debe haber una condición para salir del ciclo, en caso contrario el ciclo se repetiría
en forma indefinida.
Instrucciones Condición
DO WHILE variable operador parámetro
{Conjunto de instrucciones que se repetirán}
LOOP Salir
FOR-EACH-IN-NEXT
For each … Next permite la manipulación de objetos dentro de una colección. Una colección
es el conjunto de elementos de un mismo tipo, por ejemplo, colección de celdas, de hojas, de
libros, de ventanas, objetos gráficos, etc.
La siguiente macro permite leer el contenido de cada celda en una selección
Este código sirve para los rangos de celdas, siempre y cuando se seleccione una celda de un
rango donde desea calcular el promedio.
FUNCIONES
Las aplicaciones informáticas que habitualmente se utilizan suelen contener decenas y aún
cientos de miles de líneas de código fuente. A medida que los programas se van desarrollando
y aumentan de tamaño, se convertirían rápidamente en sistemas poco manejables sino fuera
por la modularización, que es el proceso consistente en dividir un programa muy grande en
una serie de módulos mucho más pequeños y manejables a los que se les suele denominar
de distintas formas (subprogramas, subrutinas, procedimientos, funciones, etc.)
La división de un programa en funciones, presenta entre otras las ventajas siguientes:
1. Modularización.- cada función tiene una misión muy concreta, de modo que nunca tiene
un número de líneas excesivo y siempre se mantiene dentro de un tamaño manejable.
2. Ahorro de energía y tiempo de desarrollo.- en la medida en que una misma función es
utilizada muchas veces, el número total de líneas de código del programa disminuye y
también lo hace la probabilidad de introducir errores en el programa.
3. Independencia de datos y ocultamiento de la información.- Es capaz de mantener una
gran independencia con el resto del programa, manteniendo sus propios datos y definiendo
muy claramente la interfaz con la función que la ha llamado y con las funciones a las que
llama y no teniendo ninguna posibilidad de acceso a la información que no le compete
DEFINICIÓN
Las funciones son códigos insertados en el programa principal que tiene un valor, o muchos
valores o ningún valor (parámetros o argumentos) especificando de qué tipo de dato es dicho
valor (aunque no es obligatorio) y que finalmente devuelven un único valor.
Son muy útiles, entre otras cosas, cuando la fórmula que se requiere para resolver un
problema usando las funciones propias de las hojas Excel resulta muy larga y complicada,
haciendo casi imposible su comprensión.
FUNCIONES NATIVAS
Para realizar cálculos puede usar las llamadas funciones de hoja (WorkSheetFunction en
inglés) también llamadas funciones nativas, es decir ciertas funciones que normalmente están
disponibles en las hojas de Excel, como son: SUMA, PROMEDIO, CONTAR, BUSCARV,
INDICE, etc., y puede ejecutarlo mediante el objeto Worksheetfunction.
SINTAXIS
Application.WorkSheetFunction.Nombre de la función(parámetros).
Por ejemplo: Si desea usar la función BUSCARV, la expresión sería:
Application.WorksheetFunction.VLookup(Arg1,Arg2,Arg3,[Arg4])
Las funciones incorporadas están en una versión del inglés pero la sintaxis es la misma que
la usada en la hoja de cálculo de Excel
FUNCIONES NATIVAS
Español Inglés
ABS ABS
ACOS ACOS
ACOSH ACOSH
AHORA NOW
ALEATORIO.ENTRE RANDBETWEEN
ASC ASC
ASENO ASIN
ASENOH ASINH
ATAN ATAN
ATANH ATANH
PROMEDIO AVERAGE
PROMEDIO.SI AVERAGEIF
PROMEDIO.SI.CONJUNTO AVERAGEIFS
BDCONTAR DCOUNT
BDCONTARA DCOUNTA
BDDESVEST DSTDEV
BDDESVESTP DSTDEVP
BDEXTRAER DGET
BDMAX DMAX
BDMIN DMIN
BDPRODUCTO DPRODUCT
BDPROMEDIO DAVERAGE
BDSUMA DSUM
BDVAR DVAR
BDVARP DVARP
BINOM.CRIT CRITBINOM
BUSCAR LOOKUP
BUSCARH HLOOKUP
BUSCARV VLOOKUP
CODIGO CODE
COEF.DE.CORREL CORREL
COEFICIENTE.ASIMETRIA SKEW
COEFICIENTE.R2 RSQ
COINCIDIR MATCH
COMBINAT COMBIN
CONTAR COUNT
CONTARA COUNTA
CONTAR.BLANCO COUNTBLANK
CONTAR.SI COUNTIF
CONTAR.SI.CONJUNTO COUNTIFS
Español Inglés
ERROR.TIPICO.XY STEYX
ESBLANCO ISBLANK
ESERR ISERR
ESLOGICO ISLOGICAL
ESNOD ISNA
ESNOTEXTO ISNONTEXT
ESPACIOS TRIM
ESREF ISREF
ESTEXTO ISTEXT
ESTIMACION.LINEAL LINEST
ESTIMACION.LOGARITMICA LOGEST
EXP EXP
FACT FACT
FISHER FISHER
FRECUENCIA FREQUENCY
GAMMA.LN GAMMALN
GRADOS DEGREES
HALLAR SEARCH
HALLARB SEARCHB
INDICE INDEX
INT.PAGO.DIR ISPMT
INTERSECCION INTERCEPT
INTERVALO.CONFIANZA CONFIDENCE
JERARQUIA RANK
K.ESIMO.MAYOR LARGE
K.ESIMO.MENOR SMALL
LIMPIAR CLEAN
LN LN
LOG LOG
LOG10 LOG10
MDETERM MDETERM
MAX MAX
MEDIA.ACOTADA TRIMMEAN
MEDIA.ARMO HARMEAN
MEDIA.GEOM GEOMEAN
MEDIANA MEDIAN
MES MONTH
MIN MIN
MINUTO MINUTE
MINVERSA MINVERSE
MMULT MMULT
Español Inglés
MODA MODE
MONEDA DOLLAR
MULTIPLO.INFERIOR FLOOR
MULTIPLO.SUPERIOR CEILING
NEGBINOMDIST NEGBINOMDIST
NOMPROPIO PROPER
NORMALIZACION STANDARDIZE
NPER NPER
NSHORA TIME
NUMERO.ROMANO ROMAN
PAGO PMT
PAGOINT IPMT
PAGOPRIN PPMT
PEARSON PEARSON
PENDIENTE SLOPE
PERCENTIL PERCENTILE
PERMUTACIONES PERMUT
PI PI
POISSON POISSON
POTENCIA POWER
PROBABILIDAD PROB
PRODUCTO PRODUCT
PROMEDIO AVERAGE
PRONOSTICO FORECAST
PRUEBA.CHI CHITEST
PRUEBA.CHI.INV CHIINV
PRUEBA.F FTEST
PRUEBA.FISHER.INV FISHERINV
PRUEBA.T TTEST
PRUEBA.Z ZTEST
RADIANES RADIANS
RANGO.PERCENTIL PERCENTRANK
REDONDEA.IMPAR ODD
REDONDEA.PAR EVEN
REDONDEAR ROUND
REDONDEAR.MAS ROUNDUP
REDONDEAR.MENOS ROUNDDOWN
REEMPLAZAR REPLACE
REEMPLAZARB REPLACEB
REPETIR REPT
RESIDUO MOD
Español Inglés
SEGUNDO SECOND
SENO SIN
SENOH SINH
SLN SLN
SUBTOTALES SUBTOTAL
SUMA SUM
SUMA.CUADRADOS SUMSQ
SUMAPRODUCTO SUMPRODUCT
SUMAR.SI SUMIF
SUMAR.SI.CONJUNTO SUMIFS
SUMAX2MASY2 SUMX2PY2
SUMAX2MENOSY2 SUMX2MY2
SUMAXMENOSY2 SUMXMY2
SUSTITUIR SUBSTITUTE
SYD SYD
TAN TAN
TANH TANH
TASA RATE
TENDENCIA TREND
TEXTO TEXT
TIR IRR
TIRM MIRR
TRANSPONER TRANSPOSE
USDOLLAR USDOLLAR
VA PV
VAR VAR
VARP VARP
VF FV
VNA NPV
XOR XOR
AGREGAR AGGREGATE
Y AND
Range("B3").FormulaR1C1 = "=sum(R[-2]C[0]:R[-1]C[0])"
Inicio del rango Final del rango
Range("B3").FormulaR1C1Local = "=suma(F1C2:F2C2)"
Toda fórmula deberá estar entre comillas luego de igualar en la celda donde se desea
tener el resultado. En cualquiera de los casos descritos el resultado devolverá la fórmula
en la celda específica como su contenido real y a la vista estará el valor resultante.
Español Inglés
Izquierda Left
Derecha Right
Extraer Mid
Largo Len
Hallar Instr
Reemplazar Replace
Mayúsculas Ucase
Minúsculas Lcase
Fila Row
Filas Rows
Columna Column
Columnas Columns
Valor Val
Entero Int
Redondear Round
Aleatorio Rnd
Error Error
Año Year
Mes Month
Día Day
Agregar número de días DateAdd
Fecha Date
Fechanumero Datevalue
Fecha y Hora actual Now
Hora actual Time
Hora Hour
Minuto Minute
Segundo Second
Extrae la fecha Timevalue
DESCRIPCIÓN:
LA PALABRA CLAVE FUNCTION.- La primera línea de código comienza con la palabra
Function la cual define el inicio de la función.
EL NOMBRE DE LA FUNCION.- Inmediatamente después de la palabra clave Function se
debe especificar el nombre de la función seguida de paréntesis que de manera opcional
pueden contener una lista de parámetros.
PARÁMETROS DE UNA FUNCIÓN VBA.- Los parámetros (también son variables), son el
medio por el cual pasa información de entrada a la función. Algunas funciones necesitarán de
dichas entradas para realizar algún cálculo y algunas otras no, es por ello que los parámetros
de una función son opcionales. Puede incluir tantos parámetros como sean necesarios y
solamente debe recordar separarlos por una coma por ejemplo: (cantidad as integer,
descuento as double)
VALOR DE RETORNO.- La característica principal de una función es que puede regresar un
valor. Es por eso que al definir una función se debe indicar el tipo del valor de retorno que
tendrá dicha función y está especificado por las palabras As y el nombre de la variable o el
tipo de dato que aparecen después de los paréntesis como por ejemplo: nombre de
funcion(parámetros)As Double
CUERPO DE LA FUNCIÓN VBA.- Una vez definida la función se pueden especificar todas
las instrucciones que serán ejecutadas.
RETORNANDO EL VALOR.- Una vez que se ha hecho los cálculos necesarios, es
importante regresar el valor. Para hacerlo iguale el nombre de la función al valor o variable
que contiene el valor que se desea regresar.
TERMINO DE LA FUNCIÓN.- Como última línea de código verifique que diga End Function.
Probando la función
Ejemplo3: Crear una función que permita hallar el total de un rango de datos
Ejemplo4: Crear una función que calcule el incremento de la masa corporal de una persona
a partir de la siguiente fórmula: peso/(talla²)
3. En el cuadro Peso seleccione la celda que contiene el dato respectivo y hacer lo mismo en
el cuadro talla.
APLICACIONES
VENTA DE PRODUCTOS
Elaborar el siguiente modelo de formulario en la ventana del Editor de Visual Basic utilizando
los siguientes controles:
Etiqueta para títulos VENTA DE PRODUCTOS, Producto, Cantidad, 10% descuento y A Pagar.
Para los siguientes controles cambiar la propiedad Name por el nombre que se indica a
continuación
Programar en el formulario para mostrar la lista de los productos y los valores predeterminados
Declarar los tipos de datos de forma pública para utilizar en las líneas de código que se requiera.
Programar el botón Borrar para limpiar todos los controles y empezar con un nuevo registro
REGISTRO DE PRODUCTOS
Elaborar un pequeño sistema en la cual permita registrar los productos en la hoja (hoja2) y si el
producto ya existe que muestre un mensaje respectivo evitando así registrar valores duplicados
Programar el formulario PRODUCTOS considerando lo siguiente:
* Cuando ingrese el nombre del producto, al presionar ENTER o PASAR A OTRO CUADRO
deberá crear el código para el producto con:
- la 1ra letra del nombre del producto
- la última letra del producto
- 2 letras del nombre del producto a partir de la posición 3
- el total de caracteres del producto
NOTA: todo debe mostrarse en mayúsculas
* Al ingresar el valor del precio, al presionar ENTER o PASAR A OTRO CUADRO deberá
mostrarse con el formato de moneda en soles alineado a la derecha del cuadro
* Al ingresar la fecha también deberá mostrarse con el formato de fecha alineado a la derecha
* Botón NUEVO, debe borrar el contenido de cada cuadro y colocar el cursor en el cuadro de
texto del producto
* Botón REGISTRAR debe guardar los datos de los cuadros en la Hoja2 a partir de la celda
A2 y mostrar un mensaje indicando que se han guardado correctamente
* Botón SALIR; debe mostrar un mensaje que pregunte si realmente desea cerrar el formulario
o no
VENTA DE CAMISAS
Hacer un pequeño sistema que permita calcular el monto a pagar por la compra de “N” buzos
en un bazar. Se sabe que el precio de venta es de S/ 65.00 por buzo, pero existe un descuento
del 12% si se compran más de 5 buzos.
CONVERTIDOR DE MONEDAS
Elaborar el siguiente formulario y programar
para que calcule y convierta el valor
monetario ingresado. Utilizar los valores de
conversión de la fecha actual en la cual
elabora el formulario.
REGISTRO DE EVALUACIÓN
Crear un sistema que permita ingresar datos por medio del teclado para registrar las notas del
alumno (prácticas, trabajos y examen final) una vez ingresado los datos deberá mostrar el
promedio en una celda aparte Insertar dos objetos de control para ejecutar el sistema. El
primero para registrar datos y el segundo para borrar los datos ingresados.
CONSULTA DE FACTURAS
En la siguiente base de datos se desea hacer ciertas consultas y conforme se seleccione la
opción deberá mostrar una ventana emergente en la cual solicite el dato de la consulta como
por ejemplo el nombre del cliente, a partir de que monto o un monto específico, el nombre del
vendedor, zona de consulta o una fecha específica, etc. Programar el botón Filtrar para que
muestre los datos según el botón de opción seleccionado.
FORMULARIO DE ACCESO
Elaborar el siguiente formulario y
programar tomando en cuenta lo siguiente:
El botón con el gráfico del Ojito, al presionar
deberá mostrar el dato ingresado en el
campo contraseña, por ejemplo: 1234, y
cuando suelte deberá mostrar la máscara
aplicada en el campo por ejemplo: ****.
El botón Aceptar deberá mostrar el
mensaje “Bienvenido a Creaciones
Azucena” cuando el nombre del usuario y la contraseña sean las correctas ocultando el
formulario respectivo y mostrando un siguiente formulario, sino coinciden deberá mostrar el
mensaje: “Usuario o contraseña incorrecto” y a su vez borrará todos los datos ingresados en
cada campo. Si en un tercer intento no ha ingresado correctamente los datos deberá cerrarse
completamente la aplicación.
El botón Salir deberá cerrar la aplicación completamente.
AGENDA PERSONAL
Elaborar el siguiente Formulario y programar los botones respectivos tomando en cuenta lo
siguiente:
El botón Nuevo limpiará todo registro que haya en cada cuadro de texto y a su vez colocará
el cursor en el 1er cuadro de texto.
El botón Guardar almacenará los datos en la hoja de cálculo de Excel. Si no ha ingresado
dato alguno deberá mostrar el mensaje “No deje campos en blanco”. Si el 1er dato ingresado
ya existe deberá mostrar el mensaje “El Dato ya existe inténtelo de nuevo”
El botón Buscar realizará una búsqueda comparando los datos del primer campo (cuadro de
texto) con los datos de la 1ra columna en la hoja de Excel y si no encuentra que muestre el
mensaje “El dato no fue encontrado”. Además si la búsqueda se hace sin haber ingresado el
primer dato entonces el mensaje a mostrar será: “Aun no buscas ningún dato”. En el caso de
que encuentre el dato deberá mostrar rellenar el resto de los campos (cuadros de texto)
El botón Eliminar mostrará el mensaje: “¿Estás seguro de eliminar el registro elegido?”, si
confirma se eliminará completamente de la hoja de Excel y si no confirma deberá mostrar el
mensaje: “Operación cancelada”.
NOTA: Los datos registrados serán únicos no habiendo duplicados y será en relación al
nombre ingresado.
FILTROS EN FORMULARIOS
Elaborar un pequeño sistema que permita registrar la venta de los productos en una nueva
hoja y que muestre la imagen según el producto seleccionado. Además en el mismo formulario
que muestre la lista de productos vendidos según el nombre del producto seleccionado
cuando presione el botón para filtrar.
Asignar una macro al texto aviso legal para que cuando se haga un clic que muestre una
ventana flotante de Aviso Legal como muestra la imagen siguiente
Asignar una macro al texto y/o imagen Salir para que muestre un mensaje solicitando guardar,
no guardar y cancelar
Vincular los botones: Detalle de Conceptos, Introducción de ingresos y gastos, informe por
Fecha, informe por Detalle con sus hojas respectivas.
Asignar una macro al texto Ayuda y la imagen respectiva para que muestre la ventana con
algunas indicaciones sobre como ingresar datos en las hojas.
INDICE
Editor de visual basic ............................................................................................................ 5
Descripcion del editor de visual basic .................................................................................... 6
ventanas de proyectos ....................................................................................................... 7
ventana código ............................................................................................................... 7
ventana formularios ........................................................................................................ 9
Procedimientos y principios fundamentales ..........................................................................10
procedimientos y tipos ......................................................................................................10
principios fundamentales ..................................................................................................10
Macros .................................................................................................................................12
crear una macro (el procedimiento sub) ............................................................................12
macro desde la ventana de código ...................................................................................12
macro en un botón de comando (control activex) ..............................................................13
Seguridad de macros ...........................................................................................................14
Guardar archivos con macros...............................................................................................14
Programar en el editor de visual basic ..................................................................................15
el objeto contenedor y el contenido...................................................................................15
uso de los objetos, propiedades y métodos ......................................................................15
ver todas las propiedades y métodos................................................................................16
utilizar la ruta completa para programar ............................................................................17
conjunto de instrucciones para un objeto ..........................................................................17
uso de la instrucción with ..................................................................................................17
objetos predeterminados ..................................................................................................17
Objeto range ........................................................................................................................18
select (selección) ..............................................................................................................18
selection ...........................................................................................................................19
value .................................................................................................................................19
copiar / pegar ....................................................................................................................20
limpiar ...............................................................................................................................20
Cells (celda) .........................................................................................................................21
una celda ..........................................................................................................................21
un rango de celdas ...........................................................................................................21
ventaja del objeto cells......................................................................................................21
Consejos para la escritura del código ...................................................................................22
comentarios ......................................................................................................................22
caracteres de continuación ...............................................................................................22
añadir sangrías .................................................................................................................22
nombres de procedimientos, variables y constantes. ........................................................22
Msgbox ................................................................................................................................23
mensaje simple .................................................................................................................24
mensaje de un valor ingresado en una celda ....................................................................24
mensaje en líneas .............................................................................................................24
mensaje con botones si / no .............................................................................................24
Inputbox ...............................................................................................................................25
valor por defecto (default) .................................................................................................26
información en líneas ........................................................................................................26
Errores de macros ................................................................................................................27
errores de digitación .........................................................................................................27
variables no declaradas ....................................................................................................27
corregir errores .................................................................................................................28
depurar líneas de código ..................................................................................................28
Variables ..............................................................................................................................29
declarar variables a objetos ..............................................................................................29
reglas ................................................................................................................................30
tipos de variables ..............................................................................................................30
integer (entero)..............................................................................................................30
double (doble) ...............................................................................................................30
string (texto) (cadena) ...................................................................................................30
currency (moneda) ........................................................................................................30
boolean (lógica) .............................................................................................................31
otros ..............................................................................................................................31
option explicit ....................................................................................................................31
variable local .................................................................................................................31
variable predeterminada ................................................................................................31
Programación básica ............................................................................................................32
libros .................................................................................................................................32
hojas .................................................................................................................................32
Controles de formulario ........................................................................................................33
tipos de controles de formulario ........................................................................................33
controles activex ...............................................................................................................33
diferencia entre controles de formulario y controles activex ..............................................33
propiedades de los controles activex ................................................................................34
controles activex con subrutinas vba ................................................................................34
control cuadro de texto ..................................................................................................35
control cuadro de lista ...................................................................................................35
control cuadro combinado .............................................................................................35