45
Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento de Ingeniería Industrial

Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Embed Size (px)

Citation preview

Page 1: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 2: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 3: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 3

Requerimientos

Conomientos básicos de Excel Conceptos básicos de lógica de

programación.

Page 4: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 4

Temas de la presentación

Conceptos de Programación Interfase Visual Basic Comenzando con Visual Basic

Page 5: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 6: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 6

Conceptos de programación

Conceptos básicos que se deben conocer sobre Visual Basic.

Page 7: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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)

Page 8: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 9: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 10: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 11: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 12: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 12

If, Then, ElseIf, Else, End If

Page 13: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 13

For… Next

Page 14: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 14

Do… Loop

Page 15: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 15

While… Wend

Page 16: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 17: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 18: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 19: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 20: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 20

1) Arreglos de una dimensión

Page 21: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 22: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 22

2) Arreglos de más de una dimensión

Page 23: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 24: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 24

3) Arreglos dinámicos

Page 25: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 26: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 27: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 27

Interfase - Visual Basic

Controles más utilizados Eventos Algunas funciones de VBA

Page 28: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 29: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 30: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 30

Eventos

Nombre del control

Eventos del control

Page 31: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 31

Funciones Predefinidas

Algunas de las funciones más comúnmente utilizadas de VBA.

Page 32: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 33: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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)

Page 34: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 35: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 36: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 37: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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!

Page 38: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 38

Técnicas de depuración (Debugging)

BreakPoint MsgBox

Page 39: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 40: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 41: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 42: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

Por: Juan Román y Zuriel Correa 42

MsgBox

Page 43: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.

Page 44: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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

Page 45: Seminario de Visual Basic Básico I Por: Zuriel Correa (1/Oct/02) Actualizada por Juan Román (11/Feb/03) Universidad de Puerto Rico Mayagüez Departamento

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.