Post on 23-Jan-2016
Seminario de Visual BasicBásico I
Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03)
Universidad de Puerto Rico MayagüezDepartamento de Ingeniería Industrial
Por: Juan Román y Zuriel Correa 2
Objetivos del Seminario
Como accesar Visual Basic desde Excel. Conceptos básicos necesarios para
poder comenzar a programar en VBA. Dar ideas de como:
• Atacar un problema
• Depurar un programa
• Buscar ayuda sobre VBA
Por: Juan Román y Zuriel Correa 3
Requerimientos
Conomientos básicos de Excel Conceptos básicos de lógica de
programación.
Por: Juan Román y Zuriel Correa 4
Temas de la presentación
Conceptos de Programación Interfase Visual Basic Comenzando con Visual Basic
Por: Juan Román y Zuriel Correa 5
VB vs VBA
VBA Visual Basic for Applications VBA es Visual Basic pero con algunos
objetos específicos de la aplicación en uso ya declarados.
Por: Juan Román y Zuriel Correa 6
Conceptos de programación
Conceptos básicos que se deben conocer sobre Visual Basic.
Por: Juan Román y Zuriel Correa 7
Temas Option Explicit Tipos de Variables (Data Types) Funciones y Sub-rutinas (Function & Sub) Comentarios Directrices
• If… Then… Else… End If• For… Next• Do…Loop• While…Wend
Arreglos (Arrays)
Por: Juan Román y Zuriel Correa 8
Option Explicit
Se utiliza para forzar la declaración de variables en el código.
Ayuda a evitar errores tipográficos. Se coloca en la parte de arriba del código,
antes de la declaración o utilización de cualquier variable.
En general es la primera linea en el programa. Es altamente recomendado utilizarlo.
Por: Juan Román y Zuriel Correa 9
Tipos de variables (Data Types) Boolean – True or False Currency – Dinero Date – fecha y tiempo Double – numérico con decimales Integer – numérico entero entre -32767 y 32767 Long – numérico entero grande String – texto (concatenación) Variant – variante, puede ser cualquier cosa Object – objeto, varia dependiendo el tipo de objeto que
referencia*
* Avanzado
Por: Juan Román y Zuriel Correa 10
Funciones y Sub-rutinas (Function & Sub)
Function:• Es un set de comandos en conjunto para
realizar una función que se ha de ejecutar más de una vez de una manera similar con diferentes parametros y que al final devuelve un valor.
Sub:• Es una función que no devuelve ningún valor.
resumido
Por: Juan Román y Zuriel Correa 11
Comentarios
Es texto que no se ejecuta. Sirve para dar guias de que es lo que
esta escrito. Se puede utilizar para no tener que
borrar lineas que puede que se usen en un futuro.
Se puede utilizar REM o un apóstrofe ‘ al comienzo de un comentario.
Por: Juan Román y Zuriel Correa 12
If, Then, ElseIf, Else, End If
Por: Juan Román y Zuriel Correa 13
For… Next
Por: Juan Román y Zuriel Correa 14
Do… Loop
Por: Juan Román y Zuriel Correa 15
While… Wend
Por: Juan Román y Zuriel Correa 16
Goto y Label
Label• Identifica un área en el código
GoTo• Transfiere el programa hacia un Label
Por: Juan Román y Zuriel Correa 17
Arreglos (Arrays of Data)
Nos permite guardar multiple información con una sola referencia.Ejemplo de los meses del año.
Por: Juan Román y Zuriel Correa 18
Arreglos (Arrays)
Tópicos1. Arreglos de una dimensión.
2. Arreglos de más de una dimensión.
3. Arreglos dinámicos.
4. Arreglos que contienen arreglos.
Por: Juan Román y Zuriel Correa 19
Arreglos (Arrays)
Tópicos1. Arreglos de una dimensión.
2. Arreglos de más de una dimensión.
3. Arreglos dinámicos.
4. Arreglos que contienen arreglos.
Por: Juan Román y Zuriel Correa 20
1) Arreglos de una dimensión
Por: Juan Román y Zuriel Correa 21
Arreglos (Arrays)
Tópicos1. Arreglos de una dimensión.
2. Arreglos de más de una dimensión.
3. Arreglos dinámicos.
4. Arreglos que contienen arreglos.
Por: Juan Román y Zuriel Correa 22
2) Arreglos de más de una dimensión
Por: Juan Román y Zuriel Correa 23
Arreglos (Arrays)
Tópicos1. Arreglos de una dimensión.
2. Arreglos de más de una dimensión.
3. Arreglos dinámicos.
4. Arreglos que contienen arreglos.
Por: Juan Román y Zuriel Correa 24
3) Arreglos dinámicos
Por: Juan Román y Zuriel Correa 25
Arreglos (Arrays)
Tópicos1. Arreglos de una dimensión.
2. Arreglos de más de una dimensión.
3. Arreglos dinámicos.
4. Arreglos que contienen arreglos.
Por: Juan Román y Zuriel Correa 26
4) Arreglos que contienen arreglos
Son posibles. Para accesar los elementos se utiliza un
segundo set de parentesis. Ejemplo:
• Procesos y Productos
• aProductos(2)(4) = “Máquina 4”
…
Productos
Máquinas
Por: Juan Román y Zuriel Correa 27
Interfase - Visual Basic
Controles más utilizados Eventos Algunas funciones de VBA
Por: Juan Román y Zuriel Correa 28
Controles más utilizados (Controls)
Textbox – single line or multiline ComboBox – Drop Down Menu ListBox – para listados de artículos (items) Label – texto para describir algún área CommandButton – un botón para oprimir CheckBox – una caja de marcar y desmarcar OptionButton
Por: Juan Román y Zuriel Correa 29
Eventos (Events)
Click – Cuando se hace un click con el mouse
KeyPress – Cuando se oprime y se suelta una tecla
KeyUp – Cuando se suelta una tecla KeyDown – Cuando se oprime una tecla Change – Cuando cambia la información
contenida en un control
Por: Juan Román y Zuriel Correa 30
Eventos
Nombre del control
Eventos del control
Por: Juan Román y Zuriel Correa 31
Funciones Predefinidas
Algunas de las funciones más comúnmente utilizadas de VBA.
Por: Juan Román y Zuriel Correa 32
Funciones predefinidas más utilizadas (Build in functions)
FormatNumber()• Para formatear los números para mostrarlos en la
forma y cifras decimales deseadas
InputBox()• Para preguntarle información al usuario
Ubound()• Para obtener el límite superior de un arreglo
Len()• Para determinar el largo de un string
Por: Juan Román y Zuriel Correa 33
Funciones predefinidas más utilizadas (Build in functions)
LCase() y UCase()• Para poner los caracteres en un string en
Lower case o Upper case
Mid(), Right(), Left()• Para obtener un substring de un string
InStr() y InStrRev()• Para verificar si existe un string en algún
string (devuelve la posición donde existe)
Por: Juan Román y Zuriel Correa 34
Funciones predefinidas más utilizadas (Build in functions)
IsNumeric()• Para ver si una expresión puede ser evaluada
como un número IsDate()
• Para ver si una expresión puede ser evaluada como una fecha
Now()• Devuelve la fecha y hora en el instante en
que se llama
Por: Juan Román y Zuriel Correa 35
Funciones predefinidas más utilizadas (Build in functions)
DateDiff()• Para calcular la diferencia entre dos fechas
en términos de horas, o minutos o dias o años, ect
DateAdd()• Para añadirle a una fecha cierta cantidad de
dias o horas o años, ect. Pueden añadirse números negativos.
Por: Juan Román y Zuriel Correa 36
Comenzando con Visual Basic
Como atacar un problema Técnicas de depuración Algunos errores comunes Consejos
Por: Juan Román y Zuriel Correa 37
Como atacar un problema Definir el problema – Conocer la naturaleza
del problema Observar más de un ejemplo resuelto Escribir el pseudocódigo - Flujograma Establecer los Inputs y Outputs del sistema -
Hacer la interface gráfica de ser necesario. Escribir el código. Preparar el programa para evitar errores del
usuario. Decorarlo!
Por: Juan Román y Zuriel Correa 38
Técnicas de depuración (Debugging)
BreakPoint MsgBox
Por: Juan Román y Zuriel Correa 39
BreakPoint Hacer un click en la banda de la izquierda
Se sabe que esta marcada por el formato que toma la linea
Por: Juan Román y Zuriel Correa 40
BreakPoint
Se puede colocar el mouse encima de las variables para ver el valor que tienen en el momento.
Para moverse a la próxima linea oprimir F8 en el teclado.
Para continuar la ejecución oprimir F5 en el teclado.
Por: Juan Román y Zuriel Correa 41
MsgBox
Muestra en pantalla el valor de una ecuación o de una variable.
Hay diferentes tipos de MsgBox
Por: Juan Román y Zuriel Correa 42
MsgBox
Por: Juan Román y Zuriel Correa 43
Errores comunes
Cuando se trata de sumar dos números se concatenan como strings y no se suman números.
No revisar las condiciones terminales de un Do o de un While lo que conduce a Loops infinitos.• Para salir de un loop infinito oprime las teclas
ctrl+break.
Por: Juan Román y Zuriel Correa 44
Consejos
Revisar las funciones built-in de Visual Basic. No hay que aprender como usarlas, solo saber que hacen para en un futuro saber que existen.
Indenten el código para hacerlo más legible. Buscar cualquier información necesaria en el
internet.• http://www.microsoft.com
• http://www.google.com
Por: Juan Román y Zuriel Correa 45
Próximo: Ejemplo descriptivo Se cubrirá como:
• Utilizar la Interfase Visual Basic en Excel.
• Crear formularios (UserForms) y Módulos (Modules).
• Hacer referencia a controles del formulario.
• Utilizar parte de lo discutido en esta presentación.
• Hacer funciones y hacer referencia a estas.
• Hacer referencia a celdas (Cells) y rangos (Ranges) de Excel.