SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
Subrutinas de código, procedimientos y funciones en vb
Subrutinas de código
Se denomina subrutina a una porción de código que tiene como principal función
ejecutar una determinada tarea. Estas tienen un nombre para poder identificarlas y
luego poder llamarlas para poder utilizarlas.
Las subrutinas tienen un principio y un fin y estas pueden tener distinto tipo de
alcance, o sea pueden ser de tipo privadas o públicas.
En el siguiente ejemplo se muestra una subrutina que crea visual basic
automáticamente cuando en un formulario insertamos un botón llamado Command1
y desde la ventana de eventos seleccionamos el evento click del mismo
Private Sub Command1_Click()
End Sub
Ahora, si colocamos por ejemplo un control TextBox llamado TextPedidos y hacemos
doble click sobre el mismo, se crea el procedimiento por defecto para los TextBox,
que es el evento Change
Private Sub TextPedidos_Change()
End Sub
En estos 2 últimos ejemplos tenemos una subrutina o procedimiento de tipo Privado,
esto quiere decir que la podemos utilizar solo en el formulario o módulo donde está
declarada o escrita
La palabra sub le sigue el nombre de la rutina que la identifica. En este caso
Command1_click() y en el otro ejemplo TxtPedidos_Change().
Si quisiéramos que estos procedimientos se puedan llamar desde otro formulario, lo
que tendríamos que hacer es cambiar el alcance del procedimiento, en ves de Private
Sub cambiarlo por Public Sub. si hacemos esto, ese procedimiento de código puede
ser utilizado desde cualquier parte del proyecto.
Subrutinas y Procedimientos propios
También podemos crear nuestros propios Procedimientos y Subrutinas de código
para ejecutar una determinada tarea.
Para crear un procedimiento de código se debe escribir la palabra Private
sub o Public sub (depende el alcance), seguida del nombre del procedimiento (un
nombre que queramos) y los parámetros, si es que le enviaremos parámetros (los
parámetros son opcionales). Además el procedimiento debe ser escrito en un lugar
vacío de la ventana de código, es decir nno se puede crear un procedimiento dentro
de otro
Un ejemplo para crear un procedimiento:
Private Sub ProcedimientoBorrar()
label1 = ""
label2 = ""
label3 = ""
End Sub
En este ejemplo creamos un procedimiento muy simple que tendrá la función
específica de borrar el contenido de 3 controles label.
¿ Pero ahora te preguntarás como hago para que se ejecute el procedimiento que he
creado ?.
Muy fácil. Solo debemos escribir el nombre del procedimiento en el lugar donde
queremos que se ejecute. Por ejemplo supongamos que tenemos un formulario con
3 controles Label (Label1, Label2 y Label3), También un Commandbutton llamado
Command1 y en la ventana de código hemos escrito el procedimiento del ejemplo
anterior. Si nosotros queremos llamar al procedimiento, que borrará el contenido de
los label cuando hagamos click en el Command1 lo haríamos así:
Private Sub command1_click()
ProcedimientoBorrar
End Sub
Al presionar el Command1 visual basic detectaría el nombre ProcedimientoBorrar, y
automáticamente saltaría al lugar donde creamos el procedimiento y ejecutaría las
líneas de código que haya en ese procedimiento.
También podemos llamar a un procedimiento utilizando la palabra Call, que quiere
decir llamar, seguida del nombre del procedimiento, pero en este caso si utilizamos
call y nuestro procedimiento contiene parámetros, debemos pasarlos entre
paréntesis ( los parámetros de procedimientos y funciones se explican a
continuación)
una vez que se ha terminado de ejecutar las instrucciones que estén dentro del
bloque del procedimiento, volvería a la línea siguiente de donde fue llamado el
mismo, y ejecutaría todas las líneas restantes de código. En este caso no ejecutaría
nada mas por que no hemos puesto ninguna otra instrucción debajo de
ProcedimientoBorrar.
La principal ventaja de crear procedimientos de código es que evita tener que escribir
varias veces las mismas instrucciones en un programa, el código se hace mucho mas
funcional y entendible, se pueden dividir un problema (una rutina), en varios
procedimientos y probarlos independientemente, y además la posibilidad de enviar
parámetros a los procedimientos
Pasar parámetros a los procedimientos:
Se utilizan los parámetros en los procedimientos para que el procedimiento no
ejecute siempre las mismas líneas de código y pueda variar, teniendo la posibilidad
de hacerlo mas dinámicamente. En ciertas ocaciones no es necesario enviar
parámetros, pero en otras es prácticamente fundamental. Los parámetros son datos,
casi de cualquier tipo, que se pasan seguido del nombre del procedimiento, y si es
mas de uno deben ir separados por comas (,). Ejemplo:
DatosPersonales "Luciano", 25, "La plata"
En este ejemplo pasamos tres parámetros: El primero es un nombre y es un dato de
tipo String y por ende debe ir entre comillas. El segundo es un número y el tercero
también un string. , o sea una cadena de caracteres
Pero la cosa no queda acá. Si nosotros vamos a pasar parámetros a un
procedimiento, cuando creamos el procedimiento debemos establecer que tipo de
parámetros va a recibir el mismo. Ejemplo:
Private Sub DatosPersonales(nombre As String, edad As Integer, ciud
ad As String)
Label1 = nombre
Label2 = edad
Label3 = ciudad
End Sub
siguiendo, el ejemplo anterior creamos un procedimiento con tres parámetros.
Cada parámetro se declara como se hace con las variables, o sea que debemos darles
un nombre a la variable y definir el tipo de dato ( sin utilizar la palabra Dim ) que
recibirá cuando las llamemos.
Ahora podríamos por ejemplo, en el evento click de un Command1, llamar al
procedimiento y pasarle los parámetros.
Coloca un Command1, 3 controles Label, copia en la ventana de código el
procedimiento anterior llamado DatosPersonales, y ahora pega el siguiente código
Private sub command1_click()
DatosPersonales "Luciano", 25, "La plata"
End sub
Al presionar el botón se llamará al procedimiento que habíamos creado
anteriormente, y le pasará los valores de los parámetros en el orden en que estén
establecidos declarados en el procedimiento. Esto quiere decir que el primer
parámetro con el valor "Luciano" se almacenará o asignará a la variable nombre , el
valor 25 se le asignará a la variable edad y el último valor a la variable ciudad.
Después que las variables ya cargaron el valor las podemos utilizar dentro del
procedimiento, como en el ejemplo anterior que le asignamos a un control Label1 el
contenido de la variable nombre, al Label2 el contenido de edad y al Label3 el
contenido de la variable ciudad.
Es muy importante respetar el orden en que pasamos los parámetros en un
procedimiento, por que por ejemplo en el caso anterior si hubiésemos pasado los
parámetros de esta forma:
DatosPersonales 25, "Luciano", "La plata"
el segundo parámetro "Luciano" se almacenaría en la variable Edad que es de tipo
Integer y se produciría un error en tiempo de ejecución por no coincidir los
tipos de datos, ya que la variable espera un valor numérico de tipo Integer y
nosotros le estamos pasando una cadena de caracteres, un dato de tipo String
Otra cosa importante es que cuando creamos, por ejemplo un procedimiento que va
a recibir 2 parámetros, cuando lo llamemos, no podemos enviarle solo 1 parámetro,
debemos obligatoriamente pasarle los 2 parámetros que hubiésemos declarado
en el mismo. Un ejemplo que daría un error en tiempo de ejecución por no pasar
adecuadamente los parámetros sería:
Private Sub sumar(a As Integer, b As Integer)
Label1 = a + b
End Sub
hasta aquí creamos un procedimiento llamado sumar que recibirá 2 parámetros de
tipo Integer, si nosotros llamamos al procedimiento y le pasamos un solo valor, por
ejemplo:
Call sumar ( 456 )
Esto daría un error de compilación por que el procedimiento espera recibir 2
parámetros ..y nosotros le estamos pasando o enviando solo uno de ellos.
Precisamente el cartel de error que te mostraría visual basic sería el siguiente:
Nota: hay una sentencia llamada Optional que SI permite pasar parámetros de
forma opcional, por ejemplo:
Private Sub Con_Parametro_Opcional(Nombre As String, _
Optional Email As String)
MsgBox Nombre
MsgBox Email
End Sub
Ahora si llamas a la rutina anterior, y omites el parámetro Email, esta no dará error,
por ejemplo:
Call Con_Parametro_Opcional("Maria")
Nota: Los parámetros opcionales, si o si deben estar declarados al final de la lista de
parámetros, por ejemplo esto no se puede hacer:
Private sub una_Rutina ( Optional Email As String, Nombre as String
)
Pasar parámetros por valor y por referencia ( ByVal y ByRef )
los parámetros en las funciones y procedimientos, se pueden enviar de dos maneras:
por Valor y por Referencia.
Si están declarados como ByVal, los mismos serán por valor, si se declaran como
ByRef serán por referencia.
La diferencia entre uno y otro método de paso de parámetros, es que en ByVal se
envía una copia de la variable, y de esta manera si se efectúa un cambio en el
procedimiento, solo tendrá efecto dentro del procedimiento o función, una ves que
termine y finalice el mismo, la variable original pasará a valer el dato que tenía, es
decir no se modifica
En los parámetros enviados por Referencia, lo que se hace es enviar un puntero de
la variable original. Entonces, si en la función o procedimiento se cambia el valor de
la variable, el cambio seguirá manteniéndose una ves que finalice la ejecución del
procedimiento o función.
Ejemplo de envío de parámetros por Valor ( ByVal )
Código de ejemplo
Private Sub Command1_Click()
Dim Un_Valor As Long
Un_Valor = 100
'Se envía la variable por Valor ( ByVal )
Call Sumar(Un_Valor)
'Muestra el valor que es 100, ( no se modificó en la función Sumar )
MsgBox Un_Valor
End Sub
Sub Sumar(ByVal Valor As Long)
'Modifica la variable
Valor = Valor + 100
End Sub
En el ejemplo anterior hay una Sub llamada Sumar que recibe como parámetro una
variable enviada por valor con ByVal ( es decir es una copia de la variable original ).
al presionar el Commmand1.
Al entrar en la Sub Sumar, el dato se modifica ( Valor = Valor + 100). Cuando finaliza
el procedimiento Sumar y retorna a la línea siguiente de la llamada a la Sub sumar,
muestra mediante un MsgBox el valor de la misma, en este caso es 100, y NO 200
que es el cambio que tuvo dentro del procedimiento Sumar ( Valor = Valor + 100 ).
Con esto queda visto que en realidad al enviarla como ByVal, se envía una copia de
la variable original y cualquier cambio que se produzca, será solo en el ámbito del
procedimiento o función
Ejemplo de envío de parámetros por Referencia ( ByRef )
Este ejemplo es igual que el anterior, pero en la Sub sumar , la variable Valor se
declara con ByRef ( por Referencia )
Código
Private Sub Command1_Click()
Dim Un_Valor As Long
Un_Valor = 100
'Se envía la variable por Referencia ( ByRef ) con el valor 100
Call Sumar(Un_Valor)
'Muestra el valor que ahora es 200, ( ya que se modificó en la Sub
Sumar)
MsgBox Un_Valor
End Sub
Sub Sumar(ByRef Valor As Long)
'Modifica la variable
Valor = Valor + 100
End Sub
Al probar el código, ahora el Msgox al mostrar el valor de la variable, es de 200, y
NO de 100 como en el ejemplo de ByVal.
Esto demuestra que al enviar la variable como referencia, si la misma se modifica
dentro del procedimiento o función, se está modificando la variable REAL, es decir
cualquier cambio que se le haga a la misma, se mantendrá, ya que se está
modificando la variable Real ( no es una copia )
Nota Importante: cuando no se indica a un parámetro de una función o Rutina ni
ByVal, ni ByRef, se asume que la misma se está enviando como referencia (ByRef).
Es decir lo siguiente recibe el parámetro como Referencia
Sub Sumar(Valor As Long)
.. que es lo mismo a esto:
Sub Sumar(ByRef Valor As Long)
Funciones en visual basic
Las funciones son casi exactamente iguales que los procedimientos con respecto a la
forma en que se los llama y se los crea o declara en el código, en como se le pasa
los parámetros etc..
La diferencia fundamental con respecto a los procedimientos o subrutinas es que
estos, luego de ejecutar el código que tengan en su interior, al final retornan un
valor, y este valor luego lo podemos utilizar para una determinada tarea. En cambio
los procedimientos, solo ejecutan el código que contienen y luego mueren por decirlo
de alguna manera.
Para declarar o crear una función podríamos escribir lo siguiente:
Private Function Total(Valor1 As Integer, Valor2 As Integer) As Lon
g
Total = Valor1 + Valor2
End Function
Seguramente notaste que declaramos la función llamada Total, y al final de los
parámetros dice As Long , esto es por que como dijimos las funciones retornan o
devuelven un valor, o sea que en este caso la función es de tipo Long, o mejor dicho
devolverá un valor de tipo Long., y luego ese valor devuelto lo podemos utilizar en
otra parte del programa.
Las Funciones pueden retornar casi cualquier tipo de datos, como números,
cadenas, fechas, arreglos y vectores
Para llamar a la función anterior podríamos hacerlo de la siguiente manera:
Label1.caption = Total 502, 1478
En este caso el control Label1 llamaría a la función Total , la función realizaría
la suma de los valores pasados como parámetros y por último el valor final de
la suma se lo asignaría al control label1.
Nota : En el siguiente link , hay un ejemplo de una función que retorna un array de
tipo string

Más contenido relacionado

La actualidad más candente

Cuaderno de ejercicios y practicas vistual basic
Cuaderno de ejercicios y practicas vistual basicCuaderno de ejercicios y practicas vistual basic
Cuaderno de ejercicios y practicas vistual basicOmar Valero Guerra
 
Variables de sistema en oracle forms
Variables de sistema en oracle formsVariables de sistema en oracle forms
Variables de sistema en oracle formsOscar Allen
 
Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Liz Ocampo
 
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajoESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajoDANNYOSE
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativosDaniel Vargas
 
Concurrencia bases datos 2
Concurrencia bases datos 2Concurrencia bases datos 2
Concurrencia bases datos 2Velmuz Buzz
 
Sincronización de Procesos
Sincronización de ProcesosSincronización de Procesos
Sincronización de ProcesosLuis Lastra Cid
 
Trabajo digital.
Trabajo digital.Trabajo digital.
Trabajo digital.edwin-c
 
Sistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCSistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCDaniel Gomez Jaramillo
 
Guía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CGuía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CPablo Chiesa
 
Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint michellbermudez3
 

La actualidad más candente (19)

Tema0397
Tema0397Tema0397
Tema0397
 
Visual basic san_pedro
Visual basic san_pedroVisual basic san_pedro
Visual basic san_pedro
 
Cuaderno de ejercicios y practicas vistual basic
Cuaderno de ejercicios y practicas vistual basicCuaderno de ejercicios y practicas vistual basic
Cuaderno de ejercicios y practicas vistual basic
 
Variables de sistema en oracle forms
Variables de sistema en oracle formsVariables de sistema en oracle forms
Variables de sistema en oracle forms
 
Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)
 
Yy
YyYy
Yy
 
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajoESTRUCTURA DE CONTROLYoselyn garcia trabajo
ESTRUCTURA DE CONTROLYoselyn garcia trabajo
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Concurrencia bases datos 2
Concurrencia bases datos 2Concurrencia bases datos 2
Concurrencia bases datos 2
 
Sincronización de Procesos
Sincronización de ProcesosSincronización de Procesos
Sincronización de Procesos
 
Trabajo digital.
Trabajo digital.Trabajo digital.
Trabajo digital.
 
Tarea
TareaTarea
Tarea
 
Dfd
DfdDfd
Dfd
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
Sistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCSistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UC
 
Guía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CGuía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en C
 
Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint
 
Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint Trabajo escrito grupal de pseint
Trabajo escrito grupal de pseint
 
Transacciones
TransaccionesTransacciones
Transacciones
 

Destacado

Presentación TEJIDOS ANIMALES
Presentación TEJIDOS ANIMALESPresentación TEJIDOS ANIMALES
Presentación TEJIDOS ANIMALESImortXl
 
Estructura de directorios en el sistema operativo gnu linux
Estructura de directorios en el sistema operativo gnu linuxEstructura de directorios en el sistema operativo gnu linux
Estructura de directorios en el sistema operativo gnu linuxRaul Hernandez
 
Administración de usuarios y grupos redes linux
Administración de usuarios y grupos   redes linuxAdministración de usuarios y grupos   redes linux
Administración de usuarios y grupos redes linuxRaul Hernandez
 
Mapa conceptual administración estratégica aplicada a colegios
Mapa conceptual administración estratégica aplicada a colegiosMapa conceptual administración estratégica aplicada a colegios
Mapa conceptual administración estratégica aplicada a colegiosluis luis
 
Servidor ltsp instalacion e inicio de maquinas cliente
Servidor ltsp instalacion e inicio de maquinas clienteServidor ltsp instalacion e inicio de maquinas cliente
Servidor ltsp instalacion e inicio de maquinas clienteRaul Hernandez
 
Manual poo-unidad-visual-basic
Manual poo-unidad-visual-basicManual poo-unidad-visual-basic
Manual poo-unidad-visual-basicRaul Hernandez
 
salukilehti_032014_web
salukilehti_032014_websalukilehti_032014_web
salukilehti_032014_webHeli Perkkiö
 
Qué son las bases de datos
Qué son las bases de datosQué son las bases de datos
Qué son las bases de datosRaul Hernandez
 
Instalacion y-connf-de-ltsp
Instalacion y-connf-de-ltspInstalacion y-connf-de-ltsp
Instalacion y-connf-de-ltspRaul Hernandez
 
Servidor ltsp configuraciones de maquinas virtuales
Servidor ltsp configuraciones de maquinas virtualesServidor ltsp configuraciones de maquinas virtuales
Servidor ltsp configuraciones de maquinas virtualesRaul Hernandez
 

Destacado (15)

Presentación TEJIDOS ANIMALES
Presentación TEJIDOS ANIMALESPresentación TEJIDOS ANIMALES
Presentación TEJIDOS ANIMALES
 
Estructura de directorios en el sistema operativo gnu linux
Estructura de directorios en el sistema operativo gnu linuxEstructura de directorios en el sistema operativo gnu linux
Estructura de directorios en el sistema operativo gnu linux
 
Administración de usuarios y grupos redes linux
Administración de usuarios y grupos   redes linuxAdministración de usuarios y grupos   redes linux
Administración de usuarios y grupos redes linux
 
Mapa conceptual administración estratégica aplicada a colegios
Mapa conceptual administración estratégica aplicada a colegiosMapa conceptual administración estratégica aplicada a colegios
Mapa conceptual administración estratégica aplicada a colegios
 
Servidor ltsp instalacion e inicio de maquinas cliente
Servidor ltsp instalacion e inicio de maquinas clienteServidor ltsp instalacion e inicio de maquinas cliente
Servidor ltsp instalacion e inicio de maquinas cliente
 
Manual poo-unidad-visual-basic
Manual poo-unidad-visual-basicManual poo-unidad-visual-basic
Manual poo-unidad-visual-basic
 
salukilehti_032014_web
salukilehti_032014_websalukilehti_032014_web
salukilehti_032014_web
 
Qué son las bases de datos
Qué son las bases de datosQué son las bases de datos
Qué son las bases de datos
 
RCPRESUMEOCT2016
RCPRESUMEOCT2016RCPRESUMEOCT2016
RCPRESUMEOCT2016
 
Seguridad informática
Seguridad informática Seguridad informática
Seguridad informática
 
Instalacion y-connf-de-ltsp
Instalacion y-connf-de-ltspInstalacion y-connf-de-ltsp
Instalacion y-connf-de-ltsp
 
Practica 6
Practica 6Practica 6
Practica 6
 
Rompecabezas
RompecabezasRompecabezas
Rompecabezas
 
Servidor ltsp configuraciones de maquinas virtuales
Servidor ltsp configuraciones de maquinas virtualesServidor ltsp configuraciones de maquinas virtuales
Servidor ltsp configuraciones de maquinas virtuales
 
Practica 7
Practica 7Practica 7
Practica 7
 

Similar a Procedures funciones

Similar a Procedures funciones (20)

6 libro fundamentos cap__modularidad_ecler mv
6 libro fundamentos cap__modularidad_ecler mv6 libro fundamentos cap__modularidad_ecler mv
6 libro fundamentos cap__modularidad_ecler mv
 
Visual basic 1º Año
Visual basic  1º AñoVisual basic  1º Año
Visual basic 1º Año
 
Unidad 3, Programacion Estructurada
Unidad 3, Programacion EstructuradaUnidad 3, Programacion Estructurada
Unidad 3, Programacion Estructurada
 
Procedimientos en visual basic
Procedimientos en visual basicProcedimientos en visual basic
Procedimientos en visual basic
 
Visualbasic net tema de java
Visualbasic net tema de javaVisualbasic net tema de java
Visualbasic net tema de java
 
Estructuras básicas tecnología
Estructuras básicas tecnología  Estructuras básicas tecnología
Estructuras básicas tecnología
 
Variables Visual
Variables VisualVariables Visual
Variables Visual
 
Controles aspnet.
Controles aspnet.Controles aspnet.
Controles aspnet.
 
Aprender código vba
Aprender código vbaAprender código vba
Aprender código vba
 
Algoritmos secuenciales
Algoritmos secuencialesAlgoritmos secuenciales
Algoritmos secuenciales
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 
Indentificacion de funciones
Indentificacion de funcionesIndentificacion de funciones
Indentificacion de funciones
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Metodos funciones
Metodos funcionesMetodos funciones
Metodos funciones
 
Presentacion
PresentacionPresentacion
Presentacion
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Progressbar
ProgressbarProgressbar
Progressbar
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
Html investigacion
Html investigacionHtml investigacion
Html investigacion
 
Html investigacion
Html investigacionHtml investigacion
Html investigacion
 

Más de Raul Hernandez

Más de Raul Hernandez (6)

Php y diferentes dbms
Php y diferentes dbmsPhp y diferentes dbms
Php y diferentes dbms
 
Practica 2
Practica 2Practica 2
Practica 2
 
Protocolos y tecnologias web
Protocolos y tecnologias webProtocolos y tecnologias web
Protocolos y tecnologias web
 
Practica 4
Practica 4Practica 4
Practica 4
 
Practica 1
Practica 1Practica 1
Practica 1
 
Practica 5
Practica 5Practica 5
Practica 5
 

Último

BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Flores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaFlores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaJuan Carlos Fonseca Mata
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPANEP - DETP
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirPaddySydney1
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 

Último (20)

BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Flores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaFlores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - Botánica
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETP
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartir
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 

Procedures funciones

  • 1. Subrutinas de código, procedimientos y funciones en vb Subrutinas de código Se denomina subrutina a una porción de código que tiene como principal función ejecutar una determinada tarea. Estas tienen un nombre para poder identificarlas y luego poder llamarlas para poder utilizarlas. Las subrutinas tienen un principio y un fin y estas pueden tener distinto tipo de alcance, o sea pueden ser de tipo privadas o públicas. En el siguiente ejemplo se muestra una subrutina que crea visual basic automáticamente cuando en un formulario insertamos un botón llamado Command1 y desde la ventana de eventos seleccionamos el evento click del mismo Private Sub Command1_Click() End Sub Ahora, si colocamos por ejemplo un control TextBox llamado TextPedidos y hacemos doble click sobre el mismo, se crea el procedimiento por defecto para los TextBox, que es el evento Change Private Sub TextPedidos_Change() End Sub En estos 2 últimos ejemplos tenemos una subrutina o procedimiento de tipo Privado, esto quiere decir que la podemos utilizar solo en el formulario o módulo donde está declarada o escrita La palabra sub le sigue el nombre de la rutina que la identifica. En este caso Command1_click() y en el otro ejemplo TxtPedidos_Change(). Si quisiéramos que estos procedimientos se puedan llamar desde otro formulario, lo que tendríamos que hacer es cambiar el alcance del procedimiento, en ves de Private Sub cambiarlo por Public Sub. si hacemos esto, ese procedimiento de código puede ser utilizado desde cualquier parte del proyecto.
  • 2. Subrutinas y Procedimientos propios También podemos crear nuestros propios Procedimientos y Subrutinas de código para ejecutar una determinada tarea. Para crear un procedimiento de código se debe escribir la palabra Private sub o Public sub (depende el alcance), seguida del nombre del procedimiento (un nombre que queramos) y los parámetros, si es que le enviaremos parámetros (los parámetros son opcionales). Además el procedimiento debe ser escrito en un lugar vacío de la ventana de código, es decir nno se puede crear un procedimiento dentro de otro Un ejemplo para crear un procedimiento: Private Sub ProcedimientoBorrar() label1 = "" label2 = "" label3 = "" End Sub En este ejemplo creamos un procedimiento muy simple que tendrá la función específica de borrar el contenido de 3 controles label. ¿ Pero ahora te preguntarás como hago para que se ejecute el procedimiento que he creado ?. Muy fácil. Solo debemos escribir el nombre del procedimiento en el lugar donde queremos que se ejecute. Por ejemplo supongamos que tenemos un formulario con 3 controles Label (Label1, Label2 y Label3), También un Commandbutton llamado Command1 y en la ventana de código hemos escrito el procedimiento del ejemplo anterior. Si nosotros queremos llamar al procedimiento, que borrará el contenido de los label cuando hagamos click en el Command1 lo haríamos así: Private Sub command1_click() ProcedimientoBorrar End Sub Al presionar el Command1 visual basic detectaría el nombre ProcedimientoBorrar, y automáticamente saltaría al lugar donde creamos el procedimiento y ejecutaría las líneas de código que haya en ese procedimiento.
  • 3. También podemos llamar a un procedimiento utilizando la palabra Call, que quiere decir llamar, seguida del nombre del procedimiento, pero en este caso si utilizamos call y nuestro procedimiento contiene parámetros, debemos pasarlos entre paréntesis ( los parámetros de procedimientos y funciones se explican a continuación) una vez que se ha terminado de ejecutar las instrucciones que estén dentro del bloque del procedimiento, volvería a la línea siguiente de donde fue llamado el mismo, y ejecutaría todas las líneas restantes de código. En este caso no ejecutaría nada mas por que no hemos puesto ninguna otra instrucción debajo de ProcedimientoBorrar. La principal ventaja de crear procedimientos de código es que evita tener que escribir varias veces las mismas instrucciones en un programa, el código se hace mucho mas funcional y entendible, se pueden dividir un problema (una rutina), en varios procedimientos y probarlos independientemente, y además la posibilidad de enviar parámetros a los procedimientos Pasar parámetros a los procedimientos: Se utilizan los parámetros en los procedimientos para que el procedimiento no ejecute siempre las mismas líneas de código y pueda variar, teniendo la posibilidad de hacerlo mas dinámicamente. En ciertas ocaciones no es necesario enviar parámetros, pero en otras es prácticamente fundamental. Los parámetros son datos, casi de cualquier tipo, que se pasan seguido del nombre del procedimiento, y si es mas de uno deben ir separados por comas (,). Ejemplo: DatosPersonales "Luciano", 25, "La plata" En este ejemplo pasamos tres parámetros: El primero es un nombre y es un dato de tipo String y por ende debe ir entre comillas. El segundo es un número y el tercero también un string. , o sea una cadena de caracteres Pero la cosa no queda acá. Si nosotros vamos a pasar parámetros a un procedimiento, cuando creamos el procedimiento debemos establecer que tipo de parámetros va a recibir el mismo. Ejemplo: Private Sub DatosPersonales(nombre As String, edad As Integer, ciud ad As String) Label1 = nombre Label2 = edad Label3 = ciudad
  • 4. End Sub siguiendo, el ejemplo anterior creamos un procedimiento con tres parámetros. Cada parámetro se declara como se hace con las variables, o sea que debemos darles un nombre a la variable y definir el tipo de dato ( sin utilizar la palabra Dim ) que recibirá cuando las llamemos. Ahora podríamos por ejemplo, en el evento click de un Command1, llamar al procedimiento y pasarle los parámetros. Coloca un Command1, 3 controles Label, copia en la ventana de código el procedimiento anterior llamado DatosPersonales, y ahora pega el siguiente código Private sub command1_click() DatosPersonales "Luciano", 25, "La plata" End sub Al presionar el botón se llamará al procedimiento que habíamos creado anteriormente, y le pasará los valores de los parámetros en el orden en que estén establecidos declarados en el procedimiento. Esto quiere decir que el primer parámetro con el valor "Luciano" se almacenará o asignará a la variable nombre , el valor 25 se le asignará a la variable edad y el último valor a la variable ciudad. Después que las variables ya cargaron el valor las podemos utilizar dentro del procedimiento, como en el ejemplo anterior que le asignamos a un control Label1 el contenido de la variable nombre, al Label2 el contenido de edad y al Label3 el contenido de la variable ciudad. Es muy importante respetar el orden en que pasamos los parámetros en un procedimiento, por que por ejemplo en el caso anterior si hubiésemos pasado los parámetros de esta forma: DatosPersonales 25, "Luciano", "La plata" el segundo parámetro "Luciano" se almacenaría en la variable Edad que es de tipo Integer y se produciría un error en tiempo de ejecución por no coincidir los tipos de datos, ya que la variable espera un valor numérico de tipo Integer y nosotros le estamos pasando una cadena de caracteres, un dato de tipo String Otra cosa importante es que cuando creamos, por ejemplo un procedimiento que va a recibir 2 parámetros, cuando lo llamemos, no podemos enviarle solo 1 parámetro,
  • 5. debemos obligatoriamente pasarle los 2 parámetros que hubiésemos declarado en el mismo. Un ejemplo que daría un error en tiempo de ejecución por no pasar adecuadamente los parámetros sería: Private Sub sumar(a As Integer, b As Integer) Label1 = a + b End Sub hasta aquí creamos un procedimiento llamado sumar que recibirá 2 parámetros de tipo Integer, si nosotros llamamos al procedimiento y le pasamos un solo valor, por ejemplo: Call sumar ( 456 ) Esto daría un error de compilación por que el procedimiento espera recibir 2 parámetros ..y nosotros le estamos pasando o enviando solo uno de ellos. Precisamente el cartel de error que te mostraría visual basic sería el siguiente: Nota: hay una sentencia llamada Optional que SI permite pasar parámetros de forma opcional, por ejemplo: Private Sub Con_Parametro_Opcional(Nombre As String, _ Optional Email As String) MsgBox Nombre MsgBox Email
  • 6. End Sub Ahora si llamas a la rutina anterior, y omites el parámetro Email, esta no dará error, por ejemplo: Call Con_Parametro_Opcional("Maria") Nota: Los parámetros opcionales, si o si deben estar declarados al final de la lista de parámetros, por ejemplo esto no se puede hacer: Private sub una_Rutina ( Optional Email As String, Nombre as String ) Pasar parámetros por valor y por referencia ( ByVal y ByRef ) los parámetros en las funciones y procedimientos, se pueden enviar de dos maneras: por Valor y por Referencia. Si están declarados como ByVal, los mismos serán por valor, si se declaran como ByRef serán por referencia. La diferencia entre uno y otro método de paso de parámetros, es que en ByVal se envía una copia de la variable, y de esta manera si se efectúa un cambio en el procedimiento, solo tendrá efecto dentro del procedimiento o función, una ves que termine y finalice el mismo, la variable original pasará a valer el dato que tenía, es decir no se modifica En los parámetros enviados por Referencia, lo que se hace es enviar un puntero de la variable original. Entonces, si en la función o procedimiento se cambia el valor de la variable, el cambio seguirá manteniéndose una ves que finalice la ejecución del procedimiento o función.
  • 7. Ejemplo de envío de parámetros por Valor ( ByVal ) Código de ejemplo Private Sub Command1_Click() Dim Un_Valor As Long Un_Valor = 100 'Se envía la variable por Valor ( ByVal ) Call Sumar(Un_Valor) 'Muestra el valor que es 100, ( no se modificó en la función Sumar ) MsgBox Un_Valor End Sub Sub Sumar(ByVal Valor As Long) 'Modifica la variable Valor = Valor + 100 End Sub En el ejemplo anterior hay una Sub llamada Sumar que recibe como parámetro una variable enviada por valor con ByVal ( es decir es una copia de la variable original ). al presionar el Commmand1. Al entrar en la Sub Sumar, el dato se modifica ( Valor = Valor + 100). Cuando finaliza el procedimiento Sumar y retorna a la línea siguiente de la llamada a la Sub sumar, muestra mediante un MsgBox el valor de la misma, en este caso es 100, y NO 200 que es el cambio que tuvo dentro del procedimiento Sumar ( Valor = Valor + 100 ).
  • 8. Con esto queda visto que en realidad al enviarla como ByVal, se envía una copia de la variable original y cualquier cambio que se produzca, será solo en el ámbito del procedimiento o función Ejemplo de envío de parámetros por Referencia ( ByRef ) Este ejemplo es igual que el anterior, pero en la Sub sumar , la variable Valor se declara con ByRef ( por Referencia ) Código Private Sub Command1_Click() Dim Un_Valor As Long Un_Valor = 100 'Se envía la variable por Referencia ( ByRef ) con el valor 100 Call Sumar(Un_Valor) 'Muestra el valor que ahora es 200, ( ya que se modificó en la Sub Sumar) MsgBox Un_Valor End Sub Sub Sumar(ByRef Valor As Long) 'Modifica la variable Valor = Valor + 100 End Sub Al probar el código, ahora el Msgox al mostrar el valor de la variable, es de 200, y NO de 100 como en el ejemplo de ByVal.
  • 9. Esto demuestra que al enviar la variable como referencia, si la misma se modifica dentro del procedimiento o función, se está modificando la variable REAL, es decir cualquier cambio que se le haga a la misma, se mantendrá, ya que se está modificando la variable Real ( no es una copia ) Nota Importante: cuando no se indica a un parámetro de una función o Rutina ni ByVal, ni ByRef, se asume que la misma se está enviando como referencia (ByRef). Es decir lo siguiente recibe el parámetro como Referencia Sub Sumar(Valor As Long) .. que es lo mismo a esto: Sub Sumar(ByRef Valor As Long) Funciones en visual basic Las funciones son casi exactamente iguales que los procedimientos con respecto a la forma en que se los llama y se los crea o declara en el código, en como se le pasa los parámetros etc.. La diferencia fundamental con respecto a los procedimientos o subrutinas es que estos, luego de ejecutar el código que tengan en su interior, al final retornan un valor, y este valor luego lo podemos utilizar para una determinada tarea. En cambio los procedimientos, solo ejecutan el código que contienen y luego mueren por decirlo de alguna manera. Para declarar o crear una función podríamos escribir lo siguiente: Private Function Total(Valor1 As Integer, Valor2 As Integer) As Lon g Total = Valor1 + Valor2 End Function Seguramente notaste que declaramos la función llamada Total, y al final de los parámetros dice As Long , esto es por que como dijimos las funciones retornan o devuelven un valor, o sea que en este caso la función es de tipo Long, o mejor dicho
  • 10. devolverá un valor de tipo Long., y luego ese valor devuelto lo podemos utilizar en otra parte del programa. Las Funciones pueden retornar casi cualquier tipo de datos, como números, cadenas, fechas, arreglos y vectores Para llamar a la función anterior podríamos hacerlo de la siguiente manera: Label1.caption = Total 502, 1478 En este caso el control Label1 llamaría a la función Total , la función realizaría la suma de los valores pasados como parámetros y por último el valor final de la suma se lo asignaría al control label1. Nota : En el siguiente link , hay un ejemplo de una función que retorna un array de tipo string