Seminario de Visual Basic Básico I 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)
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
Por: Juan Román y Zuriel Correa Requerimientos Conomientos básicos de Excel Conceptos básicos de lógica de programación. Por: Juan Román y Zuriel Correa
Temas de la presentación Conceptos de Programación Interfase Visual Basic Comenzando con Visual Basic Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa 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
Conceptos de programación Conceptos básicos que se deben conocer sobre Visual Basic. Por: Juan Román y Zuriel Correa
Por: Juan Román 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 Do…Loop While…Wend Arreglos (Arrays) Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa 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
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
Funciones y Sub-rutinas (Function & Sub) 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
Por: Juan Román y Zuriel Correa 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
If, Then, ElseIf, Else, End If Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa For… Next Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa Do… Loop Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa While… Wend Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa 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
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
Por: Juan Román y Zuriel Correa Arreglos (Arrays) Tópicos Arreglos de una dimensión. Arreglos de más de una dimensión. Arreglos dinámicos. Arreglos que contienen arreglos. Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa Arreglos (Arrays) Tópicos Arreglos de una dimensión. Arreglos de más de una dimensión. Arreglos dinámicos. Arreglos que contienen arreglos. Por: Juan Román y Zuriel Correa
1) Arreglos de una dimensión Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa Arreglos (Arrays) Tópicos Arreglos de una dimensión. Arreglos de más de una dimensión. Arreglos dinámicos. Arreglos que contienen arreglos. Por: Juan Román y Zuriel Correa
2) Arreglos de más de una dimensión Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa Arreglos (Arrays) Tópicos Arreglos de una dimensión. Arreglos de más de una dimensión. Arreglos dinámicos. Arreglos que contienen arreglos. Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa 3) Arreglos dinámicos Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa Arreglos (Arrays) Tópicos Arreglos de una dimensión. Arreglos de más de una dimensión. Arreglos dinámicos. Arreglos que contienen arreglos. Por: Juan Román y Zuriel Correa
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
Interfase - Visual Basic Controles más utilizados Eventos Algunas funciones de VBA Por: Juan Román y Zuriel Correa
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
Por: Juan Román y Zuriel Correa 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
Por: Juan Román y Zuriel Correa Eventos Eventos del control Nombre del control Por: Juan Román y Zuriel Correa
Funciones Predefinidas Algunas de las funciones más comúnmente utilizadas de VBA. Por: Juan Román y Zuriel Correa
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
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
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
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
Comenzando con Visual Basic Como atacar un problema Técnicas de depuración Algunos errores comunes Consejos Por: Juan Román y Zuriel Correa
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
Técnicas de depuración (Debugging) BreakPoint MsgBox Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa 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
Por: Juan Román y Zuriel Correa 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
Por: Juan Román y Zuriel Correa 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
Por: Juan Román y Zuriel Correa MsgBox Por: Juan Román y Zuriel Correa
Por: Juan Román y Zuriel Correa 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
Por: Juan Román y Zuriel Correa 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
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. Por: Juan Román y Zuriel Correa