VBA - Procedimientos Subprogramas (Procedimientos): Procedimientos Sub

Slides:



Advertisements
Presentaciones similares
Propiedades de los Reales
Advertisements

DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Programación de Computadores
Programación de Computadores
PROGRAMACIÓN CON VISUAL BASIC.
Abstracción de Datos Funciones.
Funciones. Subrutinas y procedimientos
Manejo de errores y excepciones
Funciones Excel. Parte 1. Introducción 2 Una función Excel es una fórmula o un procedimiento que se realiza en el ambiente de Visual Basic, fuera de.
Parte 3. Descripción del código de una función 1.
Programación modular Procedimientos y Funciones
Desarrollo de Aplicaciones para Internet
Técnico en programación de Software
Procedimientos y funciones definidas por el usuario
Expresiones Racionales
Exponentes Racionales y Radicales
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
VARIABLES Y CONSTANTES
Curso de Programación 1 Plan 97
Tema 2: Lenguaje PHP básico
FORTRAN 90 arreglos.
FORTRAN 90 Subprogramas.
Números enteros.
VBA – TDU y Manejo de Archivos
VISUAL BASIC CONSOLA Todas las ordenes o instrucciones se digitan dentro de sub Main() y End Sub ÁREA DE TRABAJO: Las aplicaciones de consola son aquellas.
C lase 10 COMPUTACION /17/2014Computacion - Fac. Ingeniería2  Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.
Conceptos Básicos de Java
4: Control de flujo Condicionales y bucles
Funciones en lenguaje C
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
POO Java Módulo 3 Elementos de programas Identificadores
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Con este método podemos dibujar Líneas y rectángulos en un objeto donde se permita utilizar dicho método, como por ejemplo en los Formularios, los controles.
 Ingresar dos valores correspondientes a la edad de una persona. Informar "La primera persona es mayor", "La segunda persona es mayor". C E 1 E 2 E1>E2.
Semana 5 Subprogramas..
Trabajo Practico 2 Nombre: Indira Diana. Ejercicio numero 1 C C Numero = 0 Numero > 0 numero positivo nulo negativo F F Verdadero Ingresar un número cualquiera.
PROCEDIMIENTOS FUNCIONES
Ejercicio N°4 Ingresar dos números enteros cualesquiera. Informar "el primero es mayor que el segundo", "el segundo es mayor que el primero" o "son iguales"
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Variables y Shapes. Variables ► Lugares de la memoria que reciben un nombre ► En VB no es necesario declarar las variables  A=8 ► Se declaran con Dim.
Conversión cadena a número
Microsoft© Visual Basic . Net.
Control de errores visual basic
Módulo 8: Manejo de Errores y Excepciones
EXPRESIONES Y SENTENCIAS
VBA – Elementos del Lenguaje
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Laboratorio Informática II Clase 5 Excel Controles Active X.
Arreglos y comunicación Usuario
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Programación en Visual Basic
Tema 10. Uso de formularios y controles
Visual Basic Visual Basic 6.0 es un programa que consiste en la programación en lenguaje Basic en un entorno visual de manejo.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Visual Basic FUNCIONES Y PROCEDIMIENTOS
Funciones y Procedimientos Profesor: Rodrigo Cruzat.
Módulo 4: Trabajando con Procedimientos. Descripción Crear procedimientos Uso de procedimientos Uso de funciones predefinidas Debug and Deploy Escribir.
CREAR PROCEDIMIENTO DE COMBOBOX LLENAR EDAD Private Sub Cargar_Edad( ) cboEdad.AddItem ("5") cboEdad.AddItem ("6") cboEdad.AddItem ("7") cboEdad.AddItem.
Para aplicaciones.   Una variable es un espacio de memoria en donde se almacenan datos 1. VARIABLES.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
CREAR PROCEDIMIENTO DE COMBOBOX LLENAR EDAD Private Sub Cargar_Edad( ) cboEdad.AddItem ("5") cboEdad.AddItem ("6") cboEdad.AddItem ("7") cboEdad.AddItem.
PROCEDIMIENTOS Y FUNCIONES
Programación en Visual Basic
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 5.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 7 – Funciones y Procedimientos.
2012-BM5A. Unos tips antes de empezar: C# es Case Sensitive (sensible a mayúsculas) Pepe ≠ pepe ≠ pEpE Las asignaciones se hacen con “=” y las comparaciones.
Transcripción de la presentación:

VBA - Procedimientos Subprogramas (Procedimientos): Procedimientos Sub Procedimientos Function

Subprogramas Para simplificar las tareas de programación se dividen los programas en componentes lógicos más pequeños. Estos componentes lógicos se denominan procedimientos o subrutinas. Los procedimientos resultan muy útiles para condensar las tareas repetitivas o compartidas, como cálculos utilizados frecuentemente, manipulación de texto y controles, operaciones con bases de datos, etc. Clase 10

Subprogramas Ya se han utilizado algunos tipos de subprogramas: Funciones de la librería estándar de VB: Val(), Str(), Sqr(), Atn(), Abs(), etc. Otras funciones: MsgBox(), InputBox(), etc. Métodos propios de algunos controles: Clear, AddItem, Scale, Cls, Line, Circle, etc. Procedimientos asociados a eventos: Private Sub Command1_Click() End Sub Clase 10

Crear procedimientos Un procedimiento siempre se define a nivel de módulo (estándar o de formulario). Por lo tanto, un procedimiento no se puede anidar dentro de otro procedimiento. Todo el código ejecutable de un programa en VB debe estar contenido en uno o varios procedimientos. En VB se utilizan varios tipos de procedimientos: Procedimientos Sub que no devuelven un valor. Procedimientos Function que devuelven un valor. Clase 10

Procedimientos Sub Los procedimientos Sub no devuelven un valor. Sintaxis: Alcance Sub NombreProc(parámetros) CuerpoProcedimiento End Sub Alcance: Opcional. Es el alcance del procedimiento. Puede ser Private o Public. Si no se especifica se asume Public. NombreProc: Requerido. Es el nombre del procedimiento. Clase 10

Procedimientos Sub parámetros: Opcional. Son los parámetros del procedimiento. (Véase más adelante). CuerpoProcedimiento: Opcional. Son las instrucciones que conforman al procedimiento. Cada vez que se llama al procedimiento se ejecutan las instrucciones que hay entre Sub y End Sub. El cuerpo del procedimiento puede tener instrucciones Exit Sub, la cual permite salir de inmediato del procedimiento. La ejecución del programa continúa con la instrucción que sigue a la instrucción que llamó el procedimiento Sub. Clase 10

nombreObjeto_nombreEvento Procedimientos Sub Existen dos tipos de procedimientos Sub: Procedimientos Generales y Procedimientos de Eventos. Un procedimiento de evento es un procedimiento que hace referencia a un evento de un objeto. Siempre el nombre de un procedimiento de evento se compone por el nombre del objeto, seguido de un subrayado, seguido del nombre del evento: nombreObjeto_nombreEvento Ejemplo: Command1_Click(), Form_Load(), Form_Resize() Un procedimiento general indica a la aplicación cómo realizar una tarea específica. Clase 10

Procedimientos Function Son procedimientos que devuelven un valor. Sintaxis: Alcance Function NombreProc(parámetros) As Tipo CuerpoProcedimiento End Function Alcance: Opcional. Es el alcance del procedimiento. Puede ser Private o Public. Si no se especifica se asume Public. NombreProc: Requerido. Es el nombre del procedimiento. Clase 10

Procedimientos Function parámetros: Opcional. Son los parámetros del procedimiento. (Véase más adelante). CuerpoProcedimiento: Opcional. Son las instrucciones que conforman al procedimiento. Puede tener instrucciones Exit Function. Tipo: Es el tipo de dato que retorna el procedimiento. El valor que retorna un procedimiento Function se le debe asignar al nombre del procedimiento, en caso contrario se retorna el valor por defecto. Clase 10

Argumentos vs Parámetros Los argumentos pueden ser constantes, variables o expresiones pasadas a un procedimiento. Ejemplo: en la expresión: X = Sqr(15), el valor 15 corresponde al argumento pasado a la función Sqr de la librería estándar de VB. El parámetro es el nombre de variable por el cual un argumento de procedimiento se conoce dentro del procedimiento. Esta variable recibe el argumento que se pasa dentro del procedimiento. Su alcance es local, es decir, el alcance termina cuando el procedimiento finaliza. Clase 10

Declaración de Argumentos Los parámetros de un procedimiento corresponde a una lista de variables (separadas por comas) que representan los argumentos que se pasan a un procedimiento cuando se le llama. La declaración de argumentos (parámetros) de un procedimiento tiene la siguiente sintaxis: [Optional] [ByVal | ByRef] [ParamArray] nombre_variable[( )] [As tipo] [= valor_predeterminado] En la sintaxis, los corchetes ([]) significan que la expresión es opcional y la barra vertical (|) significa exclusión lógica. Clase 10

Declaración de Argumentos La palabra clave Optional indica que no se requiere el argumento. Si se usa, todos los parámetros subsiguientes también deben ser opcionales y declararse mediante la palabra clave Optional. Optional no se puede utilizar en la declaración de un argumento si se usa la palabra clave ParamArray. ByVal indica que el argumento se pasa por valor, es decir, se pasa su valor (una copia de la variable) en vez de su dirección. Como resultado, el valor actual de la variable no puede ser cambiado por el procedimiento al cual se pasa. Clase 10

Declaración de Argumentos ByRef indica que el argumento se pasa por referencia, es decir, se pasa su dirección en vez de su valor. Como resultado, el valor real de la variable puede ser cambiado por el procedimiento al cual se pasa. ByRef es el modo predeterminado en Visual Basic. La palabra clave ParamArray permite proporcionar un número arbitrario de argumentos. Sólo se puede utilizar en el último parámetro para indicar que el argumento final es una array Optional de elementos tipo Variant. No se puede utilizar con ByVal, ByRef u Optional. Clase 10

Declaración de Argumentos nombre_variable es el nombre del parámetro. Los paréntesis al final del nombre de la variable significan que el parámetro recibe un array. No se debe especificar tamaño ni número de dimensiones del array, sólo se colocan los paréntesis vacíos. tipo es el tipo de dato del parámetro. Si no se especifica se asume Variant. valor_predeterminado es una expresión constante correspondiente al valor por defecto para parámetros opcionales. Sólo es válido para parámetros Optional. Clase 10

Llamar procedimientos Los procedimientos se pueden llamar de varias formas: Utilizando el nombre y lista de argumentos Utilizando la instrucción Call En una expresión (sólo procedimientos Function) Utilizando el nombre y lista de argumentos: nombre_procedimiento arg1,arg2,…,argN En este caso, no se debe utilizar paréntesis después del nombre del procedimiento. Si el procedimiento retorna un valor, este se pierde. Útil para procedimientos Sub. Ejemplo: Sqr 15 Clase 10

Llamar procedimientos Utilizando la instrucción Call: Call nombre_procedimiento(arg1,arg2,…,argN) En este caso, se debe utilizar paréntesis después del nombre del procedimiento. Si el procedimiento retorna un valor, este se pierde. Útil para procedimientos Sub. Ejemplo: Call Sqr(15) Clase 10

Llamar procedimientos En una expresión: nombre_procedimiento(arg1,arg2,…,argN) En este caso, se debe utilizar paréntesis después del nombre del procedimiento. Sólo es válido para procedimientos Function. Ejemplos: X = Sqr(15) Y = Abs(10 * X – Atn(2)) Clase 10

Ejemplo 1 Realizar un procedimiento genérico que permita leer una matriz por el teclado de elementos reales. Realizar un procedimiento genérico que permita mostrar una matriz de elementos reales en una caja de texto. Clase 10

Ejemplo 1: Análisis Un procedimiento genérico para leer una matriz necesita: Un parámetro que recibe la matriz de tipo real simple: A() As Single Un parámetro por referencia, de tipo entero, para el número de filas: N As Integer Un parámetro por referencia, de tipo entero, para el número de columnas: M As Integer Clase 10

Ejemplo 1: Análisis Un procedimiento genérico para mostrar una matriz en una caja de texto necesita: Un parámetro que recibe la matriz de tipo real simple: A() As Single Un parámetro por valor, de tipo entero, para el número de filas: ByVal N As Integer Un parámetro por valor, de tipo entero, para el número de columnas: ByVal M As Integer Un parámetro con la referencia de la caja de texto: txt As TextBox Clase 10

Ejemplo 1: Implementación Procedimiento genérico para leer una matriz: Public Sub LeerMatriz(A() As Single, N As Integer, _ M As Integer) Dim I As Integer N = Val(InputBox("Número de Filas:")) M = Val(InputBox("Número de Columnas:")) ReDim A(1 To N, 1 To M) For I = 1 To N For J = 1 To M A(I, J) = Val(InputBox("Ingrese elemento(" & _ I & ", " & J & "):")) Next J Next I End Sub Clase 10

Ejemplo 1: Implementación Procedimiento genérico para mostrar una matriz: Public Sub MostrarMatriz(A() As Single, ByVal N As Integer, _ ByVal M As Integer, txt As TextBox) Dim I As Integer txt.Text = "" For I = 1 To N For J = 1 To M txt.Text = txt.Text & A(I, J) & vbTab Next J txt.Text = txt.Text & vbCrLf Next I End Sub Clase 10

Ejemplo 2 Realizar un procedimiento que permita multiplicar dos matrices: Una matriz A de orden mxn y una matriz B de orden pxq. Nota: Las matrices se pueden multiplicar si y sólo si n = p. El orden de la matriz resultante es mxq. Clase 10

Ejemplo 2: Análisis Un procedimiento para multiplicar dos matrices necesita: Dos parámetros que reciben las matrices de tipo real simple: A() As Single, B() As Single Cuatro parámetros por valor, de tipo entero, para el orden de cada matriz: N1 As Integer, M1 As Integer, N2 As Integer, M2 As Integer Un parámetro que devuelve la matriz resultante: C() As Single El procedimiento devolverá True si se realizó la multiplicación, en caso contrario devolverá False. Clase 10

Ejemplo 2: Implementación Procedimiento para multiplicar dos matrices: Public Function MultMat(A() As Single, B() As Single, _ ByVal N1 As Integer, ByVal M1 As Integer, _ ByVal N2 As Integer, ByVal M2 As Integer, _ C() As Single) As Boolean Dim I As Integer, J As Integer, K As Integer, Sum As Single If M1 <> N2 Then MultMat = False: Exit Function ReDim C(1 To N1, 1 To M2) For I = 1 To N1 For J = 1 To M2 Sum = 0 For K = 1 To M1 Sum = Sum + A(I, K) * B(K, J) Next K C(I, J) = Sum Next J Next I MultMat = True End Sub

Ejemplo 3 Realizar un programa en VB que permita multiplicar dos matrices y mostrar el resultado. Clase 10

Ejemplo 3: Análisis Un programa que permita multiplicar dos matrices necesita: Leer las dos matrices Realizar la multiplicación Mostrar el resultado si la multiplicación fue posible, en caso contrario, mostrar un mensaje descriptivo. El programa puede hacer uso de los procedimientos definidos anteriormente, implementándolos en un módulo estándar. Clase 10

Ejemplo 3: Implementación 'En el evento Click de un botón de Comando. Dim M1() As Single, M2() As Single, M3() As Single Dim N As Integer, M As Integer, P As Integer, Q As Integer Call LeerMatriz(M1, N, M) Call LeerMatriz(M2, P, Q) If (MultMat(M1, M2, N, M, P, Q, M3)) Then MostrarMatriz M3, UBound(M3, 1), UBound(M3, 2), Text1 Else MsgBox "No se puede multiplicar las matrices: " & _ "El número de columnas de la primera matriz es " & _ "diferente al número de filas de la segunda " & _ "matriz.", vbExclamation, "Error" End If