Universidad de Puerto Rico Mayagez Departamento de Ingeniera Industrial
Seminario de Visual Basic Bsico I
Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Romn (11/Feb/03)
Objetivos del Seminario
Como accesar Visual Basic desde Excel. Conceptos bsicos necesarios para poder comenzar a programar en VBA. Dar ideas de como:
Atacar un problema Depurar un programa Buscar ayuda sobre VBA
Por: Juan Romn y Zuriel Correa
Requerimientos
Conomientos bsicos de Excel Conceptos bsicos de lgica de programacin.
Por: Juan Romn y Zuriel Correa
Temas de la presentacin
Conceptos de Programacin Interfase Visual Basic Comenzando con Visual Basic
Por: Juan Romn y Zuriel Correa
VB vs VBA
VBA Visual Basic for Applications VBA es Visual Basic pero con algunos objetos especficos de la aplicacin en uso ya declarados.
Por: Juan Romn y Zuriel Correa
Conceptos de programacin
Conceptos bsicos que se deben conocer sobre Visual Basic.
Por: Juan Romn y Zuriel Correa
Temas
Option Explicit Tipos de Variables (Data Types) Funciones y Sub-rutinas (Function & Sub) Comentarios Directrices
If Then Else End If For Next DoLoop WhileWend
Arreglos (Arrays)
Por: Juan Romn y Zuriel Correa
Option Explicit
Se utiliza para forzar la declaracin de variables en el cdigo. Ayuda a evitar errores tipogrficos. Se coloca en la parte de arriba del cdigo, antes de la declaracin o utilizacin de cualquier variable. En general es la primera linea en el programa. Es altamente recomendado utilizarlo.
Por: Juan Romn y Zuriel Correa
Tipos de variables (Data Types)
Boolean True or False Currency Dinero Date fecha y tiempo Double numrico con decimales Integer numrico entero entre -32767 y 32767 Long numrico entero grande String texto (concatenacin) Variant variante, puede ser cualquier cosa Object objeto, varia dependiendo el tipo de objeto que referencia*
* Avanzado
Por: Juan Romn y Zuriel Correa
Funciones y Sub-rutinas (Function & Sub)
Function:
Es
un set de comandos en conjunto para realizar una funcin que se ha de ejecutar ms de una vez de una manera similar con diferentes parametros y que al final devuelve un valor. resumido
Sub:
Es una funcin que no devuelve ningn valor.
Por: Juan Romn y Zuriel Correa
10
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 apstrofe al comienzo de un comentario.
Por: Juan Romn y Zuriel Correa
11
If, Then, ElseIf, Else, End If
Por: Juan Romn y Zuriel Correa
12
For Next
Por: Juan Romn y Zuriel Correa
13
Do Loop
Por: Juan Romn y Zuriel Correa
14
While Wend
Por: Juan Romn y Zuriel Correa
15
Goto y Label
Label
Identifica un rea en el cdigo
GoTo
Transfiere el programa hacia un Label
Por: Juan Romn y Zuriel Correa
16
Arreglos (Arrays of Data)
Nos permite guardar multiple informacin con una sola referencia.
Ejemplo de los meses del ao.
Por: Juan Romn y Zuriel Correa
17
Arreglos (Arrays)
Tpicos
1. Arreglos de una dimensin. 2. Arreglos de ms de una dimensin. 3. Arreglos dinmicos. 4. Arreglos que contienen arreglos.
Por: Juan Romn y Zuriel Correa
18
Arreglos (Arrays)
Tpicos
1. Arreglos de una dimensin. 2. Arreglos de ms de una dimensin. 3. Arreglos dinmicos. 4. Arreglos que contienen arreglos.
Por: Juan Romn y Zuriel Correa
19
1) Arreglos de una dimensin
Por: Juan Romn y Zuriel Correa
20
Arreglos (Arrays)
Tpicos
1. Arreglos de una dimensin. 2. Arreglos de ms de una dimensin. 3. Arreglos dinmicos. 4. Arreglos que contienen arreglos.
Por: Juan Romn y Zuriel Correa
21
2) Arreglos de ms de una dimensin
Por: Juan Romn y Zuriel Correa
22
Arreglos (Arrays)
Tpicos
1. Arreglos de una dimensin. 2. Arreglos de ms de una dimensin. 3. Arreglos dinmicos. 4. Arreglos que contienen arreglos.
Por: Juan Romn y Zuriel Correa
23
3) Arreglos dinmicos
Por: Juan Romn y Zuriel Correa
24
Arreglos (Arrays)
Tpicos
1. Arreglos de una dimensin. 2. Arreglos de ms de una dimensin. 3. Arreglos dinmicos. 4. Arreglos que contienen arreglos.
Por: Juan Romn y Zuriel Correa
25
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) = Mquina 4
Por: Juan Romn y Zuriel Correa
Productos Mquinas
26
Interfase - Visual Basic
Controles ms utilizados Eventos Algunas funciones de VBA
Por: Juan Romn y Zuriel Correa
27
Controles ms utilizados (Controls)
Textbox single line or multiline ComboBox Drop Down Menu ListBox para listados de artculos (items) Label texto para describir algn rea CommandButton un botn para oprimir CheckBox una caja de marcar y desmarcar OptionButton
Por: Juan Romn y Zuriel Correa
28
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 informacin contenida en un control
Por: Juan Romn y Zuriel Correa
29
Eventos
Eventos del control
Nombre del control
Por: Juan Romn y Zuriel Correa
30
Funciones Predefinidas
Algunas de las funciones ms comnmente utilizadas de VBA.
Por: Juan Romn y Zuriel Correa
31
Funciones predefinidas ms utilizadas (Build in functions)
FormatNumber()
Para formatear los nmeros para mostrarlos en la forma y cifras decimales deseadas Para preguntarle informacin al usuario Para obtener el lmite superior de un arreglo Para determinar el largo de un string
Por: Juan Romn y Zuriel Correa
InputBox() Ubound()
Len()
32
Funciones predefinidas ms utilizadas (Build in functions)
LCase() y UCase()
Para poner los caracteres en un string en
Lower case o Upper case
Mid(), Right(), Left()
InStr() y InStrRev()
Para obtener un substring de un string
Para verificar si existe un string en algn
string (devuelve la posicin donde existe)
Por: Juan Romn y Zuriel Correa
33
Funciones predefinidas ms utilizadas (Build in functions)
IsNumeric()
IsDate() Now()
Para ver si una expresin puede ser evaluada
como un nmero
Para ver si una expresin puede ser evaluada
como una fecha
Devuelve la fecha y hora en el instante en
que se llama
Por: Juan Romn y Zuriel Correa
34
Funciones predefinidas ms utilizadas (Build in functions)
DateDiff()
Para calcular la diferencia entre dos fechas
en trminos de horas, o minutos o dias o aos, ect
DateAdd()
Para aadirle a una fecha cierta cantidad de
dias o horas o aos, ect. Pueden aadirse nmeros negativos.
Por: Juan Romn y Zuriel Correa
35
Comenzando con Visual Basic
Como atacar un problema Tcnicas de depuracin Algunos errores comunes Consejos
Por: Juan Romn y Zuriel Correa
36
Como atacar un problema
Definir el problema Conocer la naturaleza del problema Observar ms de un ejemplo resuelto Escribir el pseudocdigo - Flujograma Establecer los Inputs y Outputs del sistema Hacer la interface grfica de ser necesario. Escribir el cdigo. Preparar el programa para evitar errores del usuario. Decorarlo!
Por: Juan Romn y Zuriel Correa
37
Tcnicas de depuracin (Debugging)
BreakPoint MsgBox
Por: Juan Romn y Zuriel Correa
38
BreakPoint
Hacer un click en la banda de la izquierda
Se sabe que esta marcada por el formato que toma la linea
Por: Juan Romn y Zuriel Correa
39
BreakPoint
Se puede colocar el mouse encima de las variables para ver el valor que tienen en el momento. Para moverse a la prxima linea oprimir F8 en el teclado. Para continuar la ejecucin oprimir F5 en el teclado.
Por: Juan Romn y Zuriel Correa
40
MsgBox
Muestra en pantalla el valor de una ecuacin o de una variable. Hay diferentes tipos de MsgBox
Por: Juan Romn y Zuriel Correa
41
MsgBox
Por: Juan Romn y Zuriel Correa
42
Errores comunes
Cuando se trata de sumar dos nmeros se concatenan como strings y no se suman nmeros. 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 Romn y Zuriel Correa
43
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 cdigo para hacerlo ms legible. Buscar cualquier informacin necesaria en el internet.
[Link] [Link]
Por: Juan Romn y Zuriel Correa
44
Prximo: Ejemplo descriptivo Se cubrir como:
Utilizar la Interfase Visual Basic en Excel. Crear formularios (UserForms) y Mdulos
(Modules). Hacer referencia a controles del formulario. Utilizar parte de lo discutido en esta presentacin. Hacer funciones y hacer referencia a estas. Hacer referencia a celdas (Cells) y rangos (Ranges) de Excel.
Por: Juan Romn y Zuriel Correa
45