Manual - Visual Basic - 6
Manual - Visual Basic - 6
Manual - Visual Basic - 6
1
ITAE
2
Manual del Programador - Prof. Freddy Hervias Vargas
Introducción
Esta guía esta destinado para aquellos que nunca han entrado en contacto con
este lenguaje de programación. Este tutorial está basado en la versión 6.0 de
visual basic, aunque con otras versiones no creo que tengas problemas.
Entrando en el tema, con este lenguaje de programación puedes realizar casi
cualquier tipo de programa para plataformas windows, esto quiere decir, que
puedes programar utilitarios para windows, bases de datos, aplicaciones comer-
ciales y de gestión, juegos, etc.. .
Sin embargo lo que no puedes desarrollar son por ejemplo: aplicaciones que
administren bases de datos gigantes, drivers para dispositivos , juegos que uti-
licen una interfaz gráfica compleja, ya que tendrías que utilizar otro entorno de
desarrollo o lenguaje , como por ejemplo el C, el C++, Delphi , .NET u otros, es
decir lenguajes que sean mas rápidos y que tengan soporte para este tipo de
proyectos y programas.
3
ITAE
Puntero PictureBox
Label TexBox
CheckBox OptionButton
ComboBox ListBox
HScrollBar VScrollBar
Timer DriverListBox
DirListBox FileListBox
Shape Line
Image Data
En la imagen superior podemos ver la barra de controles. Esta barra contiene los
controles estándar de Visual Basic. Se los llama estándar porque que son los con-
troles que por defecto añade Visual Basic cuando creamos un programa desde
0. A los controles no estándar, u otro tipo de controles, por ejemplo los creados
por nosotros, los que tengamos instalados en el sistema, y demás que se instalan
con el VB, hay que agregarlos a mano, es decir uno mismo, esto se hace desde el
Menú Componentes o presionando las combinaciones de tecla Ctrl+T. Cuando se
agrega un control no estándar, se añade a la barra y ya lo puedes utilizar.
Los controles estándar son los controles básicos, por ejemplo los Command
Button o botones de comando, Control TextBox o caja de texto, Picture Box o caja
de imagen. El control FileListBox para ver archivos, y varios otros que se explican
en los siguientes capítulos.
4
Manual del Programador - Prof. Freddy Hervias Vargas
Esta otra ventana acoplable que está debajo de la ventana de Proyecto, se llama
Ventana de propiedades de Visual Basic.
5
ITAE
En esta parte se realizará un ejemplo simple que consistirá en una ventana o for-
mulario que contendrá un botón, y al presionar este botón nos mostrará o abrirá
otra ventana con un mensaje, como las que utiliza windows cuando nos informa
sobre algo . Este mensaje visualizará un texto con la descripción:
Formulario
6
Manual del Programador - Prof. Freddy Hervias Vargas
Propiedades
Los Eventos
Los Métodos
7
ITAE
1. Abre el Visual Basic y te aparecerá una ventana para que puedas elegir el tipo
de Proyecto o programa que querés realizar. Como verás hay muchas opciones,
nosotros elegiremos la opción Estándar EXE como muestra la imagen:
4 - Como te darás cuenta, el texto que muestra el botón por defecto es “Com-
mand1”. Nosotros lo vamos a cambiar por “Mostrar mensaje”. Para ello tenemos
que cambiarle la propiedad Caption del botòn. Entonces seleccioná con un click
el command1 (serciorate que esté seleccionado, cuando al rededor del botòn
aparece unos puntos azules) y en la ventana de propiedades de los controles que
esta ubicada en la parte derecha del IDE, te mostrará las propiedades del control
que está seleccionado actualmente. En este caso como está seleccionado el bo-
tón solo nos mostrarà las propiedades del Command1. Ahora buscá en la lista de
propiedades la propiedad Caption y verás que dice Command1, borrala y escribe:
“Mostrar mensaje”. Como puedes ver el texto o leyenda del botón a cambiado.
8
Manual del Programador - Prof. Freddy Hervias Vargas
NOTA: Nosotros todavía no hemos ejecutado nuestro programa por que obviamente lo estamos
diseñando. A esto se lo denomina trabajar en “Tiempo de diseño”. La otra forma de tra
bajo se denomina “Tiempo de ejecución”, que es cuando nuestro programa está siendo
ejecutado o cargado en memoria.
Tendrías que tener algo por el estilo en tu formulario Form1
5. Ahora vamos a agregar las instrucciones o líneas de código para que cuando pulsés el botón se
despliegue un mensaje. Haces Doble click sobre el botòn y pudes ver que se habre una ventana
donde escribir el código. Esta se llama precisamente ventana de Código. Al abrirse la ventana
muestra una serie de instrucciones
6. Lo que se hizo fue utilizar una función llamada MsgBox , que sirve para mostrar mensajes. Ya
podemos ejecutar o probar el ejemplo, para ello hay varias opciones y formas:
9
ITAE
LOS FORMULARIOS
También se dijo, los controles e inclusive los Formularios tienen sus propias ca-
racterísticas, como las propiedades (un ejemplo el color del fondo o propiedad
Backcolor), sus eventos (el evento load que se ejecuta cuando cargamos el for-
mulario en memoria), y sus métodos (por ejemplo el método show que es para
mostrar el formulario y el método hide que es para ocultarlo, en el caso de un
formulario.
Acá hay que hacer una cosa muy importante. Cuando se comienza a progra-
mar, suele ser muy casual confundir métodos y eventos y no son lo mismo. Los
métodos son funciones propias de cada objeto, por ejemplo el método hide de
un formulario no lo posee un command button. Con los eventos suele ocurrir lo
mismo. Un formulario posee el evento load y un command button no lo posee (a
no ser que pertenezca un arreglo de controles pero ese es otro tema que se verá
en otra ocación).
Pero otros eventos si los comparten ambos. Siguiendo el ejemplo del formulario y
el botón, los dos tienen un evento llamado click, y todas las instrucciones de có-
digo que escribamos en la rutina de código o procedimiento que estén bajo este
evento, se ejecutarán cuando hagamos un click con el mouse sobre el objeto. El
evento Click lo poseen la mayoría de los controles, pero no tiene porque ser así.
Para seguir con el tema de los métodos y eventos, vamos a hacer un ejemplo
simple de ejercicio. Este ejemplo, consistirá en un formulario que contendrá un
botón y , al presionarlo nos mostrará otro formulario.
10
Manual del Programador - Prof. Freddy Hervias Vargas
1. Comienzá un nuevo proyecto Exe. Por defecto visual basic te agrega un for-
mulario llamado Form1. este formulario contendrá el botón que al presionarlo
muestre otro formulario, en este caso un Form2.
Ahora selecciona el botón para que te muestre la lista de propiedades del mis-
mo. Por si ya te olvidaste, la ventana de propiedades está a la derecha y te
muestra las propiedades del objeto seleccionado actualmente en el entorno
de trabajo del vb. Una ves seleccionado el botón, buscá la propiedad caption
y escribí : mostrar formulario 2
3. Ahora hay que agregar el otro formulario es decir el Form2 a nuestro proyecto.
Como en la barra de controles no tienes la opción de agregar otros formu-
larios, tendrás que agregarlo desde la barra de menú >proyecto> Agregar
formulario.
y seleccioná el form1.
11
ITAE
6. Corre el programa pulsando la tecla F5 para ver como funciona. Para termi-
narlo pulsa el ícono con la imagen de un cuadrado azul desde la barra de
herramientas.
Ahora vamos a hacer un programa de ejemplo parecido al anterior, pero con al-
gunas variantes.
12
Manual del Programador - Prof. Freddy Hervias Vargas
Pasos a seguir
13
ITAE
6. El último paso que nos queda para poder correr nuestro programa es ingre-
sar un nuevo formulario, entonces desde el menú proyecto eliges la opción
agregar formulario y agregas uno nuevo al proyecto.
Nota :
Seguro que te preguntarás para que sirve el método Load,
si para que aparezca en pantalla el Form2 tengo que usar la
instrucción show. Supongamos que tenemos un programa
con varios formularios y que estos tienen muchos controles
y es medio “pesado” (me refiero en bytes), entonces a ve-
ces conviene cargar dichos formularios en la memoria, para
que cuando necesitamos llamarlos o mostrarlos en pantalla,
estos se muestren de forma mas rápida. Esta es una de las
posibilidades del uso no es la única.
14
Manual del Programador - Prof. Freddy Hervias Vargas
Todos los lenguajes utilizan este sistema o metodología para la programación de aplica-
ciones,
pero varían la forma en que se utilizan, su sintaxis etc...
Cuando uno recién empieza a programar, parece muy complicado entender estos temas, pero con
la práctica todo se va aclarando.
Lo bueno de comprender los fundamentos de la programación, es que nos permite luego po-
der programar en casi cualquier lenguaje, por que la forma de programar en general no varía
demasiado, lo que cambia en cada uno de ellos es su sintaxis y funciones y cosas propias del
lenguaje.
1. Las Variables
Las variables, como su nombre lo indica, se utilizan para almacenar valores que tienen la pro-
piedad de variar el contenido. Cuando hablamos de contenido nos referimos a cualquier tipo de
datos, por ejemplo un nombre, una fecha, un color, un número etc... .
A las variables se les asigna un nombre para poder utilizarlas. Por ejemplo puedo crear una varia-
ble llamada fecha y esta almacenará una fecha. A los nombres de las variables se los denomina
identificadores. Cuando creamos variables, tenemos que tratar de asignarles un nombre que se
relacione con el tipo de dato que queremos almacenar. Por ejemplo no tendría mucho sentido
crear una variable llamada m y allí guardar o almacenar un nombre o un apellido, por que cuan-
do echemos vista al código resultaría mas difícil deducir que tipo de dato estoy guardando. Por
ejemplo en este último caso sería mucho mas lógico crear una variable llamada “nombres” y allí
guardar “Luciano”, “Pedro”, “Natalia” etc..
En visual basic a las variables conviene declararlas, o sea, avisarle a vb que vamos a utilizar dichas
variables. A estas se las declara en el comienzo del código y se les antepone la palabra reserva-
da Dim, luego el nombre que nosotros queramos y seguido el tipo de dato que almacenará, por
ejemplo si quiero almacenar en una variable llamada Numero
La palabra Integer le avisa a vsiaual basic que voy a guardar un número entero. Después de de-
clararla le podemos asignar un valor con el operador “=”, ejemplo:
Pero hay que tener en cuenta que al declarar una variable, en este caso, de tipo integer, no po-
dríamos almacenar en ella una cadena de caracteres como por ejemplo un nombre o cualquier
otro tipo de datos que no sea un número entero. Si sucedería esto nuestro programa daría un
error en tiempo de ejecución, mostrándonos un feo cartel diciéndoos que no coinciden los tipos
de datos..
15
ITAE
2. Tipos de datos:
Los tipos de datos, indican el tipo de valor que puede almacenar una variable. Los principales
tipos de datos:
Números enteros: dentro de los números enteros tenemos varios tipos de datos de-
pendiendo el rango que queramos utilizar:
Byte: puede almacenar números enteros dentro del rango desde 0 a 255
Integer: puede almacenar números enteros dentro del rango -32.768 a
32.767
Long: puede almacenar números enteros dentro del rango -2.147.483.648
hasta 2.147.483.648
Números decimales: para almacenar números decimales contamos con los siguien-
tes tipos de datos:
Nota: hay mas tipos de datos, incluso nosotros podemos crear los nuestros.
3. Constantes
Las constentes, como las variables, se utilizan para guardar datos y valores para nuestro progra-
ma, pero a diferencia de estas últimas (las variables), el contenido que almacenen no cambia,
siempre es constante.
A diferencia de las variables que se declaran con la palabra Dim, las Constantes se declaran con
la palabra Const.
Ejemplo:
Const numero = 53
En la línea anterior he creado una constante, que la llamé numero y va a almacenar un número
, y este valor, cuando se ejecute mi programa se mantendrá invariable.
Un ejemplo:
1. En la siguiente línea se declaran 2 tipos de variables de tipo Integer llamadas num1 y num2.
Luego se les asigna un valor a cada una y luego las sumamos, y mediante la función MsgBox
que es una función de Visual Basic para mostrar mensajes, mostramos el resultado de esa
suma.
16
Manual del Programador - Prof. Freddy Hervias Vargas
Coloca un botón (CommandButton) llamado Command1. Hacé dobleClick sobre el botón para
que se abra la ventana de código de Visual Basic. Dentro del procedimiento Click pega este
código:
Al ejecutar el programa, puedes ver como se presenta una caja de mensaje con el resultado al
sumar las 2 variables num1 y num2
2. Ahora vamos a declarar y crear 2 variables de tipo String, es decir vamos a almacenar cadenas
de caracteres en cada una de ellas. En el ejemplo se crean 2 variables, una llamada nombre
y otra apellido. Después le asignamos un valor, y por ultimo mostramos las variables con un
mensaje usando la función MsgBox como en el ejemplo anterior. Pero antes hay que aclarar
algo importante, las cadenas en visual basic se encierran entre comillas dobles como podés
ver en el ejemplo, de lo contrario se va a producir un error.
3. Ahora un ejemplo que produce un error en tiempo de ejecución. Creamos 2 variables exac-
tamente igual que en el ejemplo anterior, pero en ves de declarar las variables nombre y
apellido como de tipo String lo hacemos como de tipo Integer.
Si probás el ejemplo, visual basic te mostrará un mensaje de error como el siguiente: “no coinci-
den los tipos de datos”:
...ya que las variables están declaradas como de tipo Integer, y le estás asignando un tipo de dato
que no lo acepta.
17
ITAE
Para mostrar el valor de la variable Edad en un control TextBox cuando presionamos un botón
Command1, sería de esta manera:
Si probaras cambiando el valor 88 por ejemplo a 300, ocurriría lo mismo que en el ejemplo
anterior, es decir un Error 13 en tiempo de ejecución “No coinciden los tipos de datos”
4. Estructuras de control
Las estructuras de control se utilizan para controlar el flujo del programa en una rutina o fun-
ción. Mediante ellas podemos controlar, mediante una condición, que se ejecute una determina-
da línea o bloque de líneas de código .. o que no se ejecuten.
If Label1.Caption = “50” Then
msgbox “mi label tiene un valor de 50”
else
msgbox “mi label NO tiene un valor de 50”
end if
Si (If) la propiedad caption del label1 que tengo en el formulario es igual (=) a
“50” entonces (Then) que muestre un determinado mensaje, si no (Else) que
muestre el otro mensaje.
18
Manual del Programador - Prof. Freddy Hervias Vargas
En conclusión lo que hace esta estructura es evaluar una condición, si se cumple, que se ejecute
determinada tarea. si no se cumple, se ejecutará las líneas de código que estén bajo la cláusula
Else. Luego tenemos que cerrar la estructura con la palabra end if.
Tenemos que aclarar que no es obligatorio usar If y else juntos en la misma cláusula. Por ejemplo
podríamos utilizar solo una estructura If sin else. Por ejemplo:
End
End If
‘Si no, se prosigue con esta línea
Coloca un Label1 y un Command1. En la propiedad caption del Label1 escribe “Hola”. Al ejecutar
el programa y presionar el Command1, se termina el programa con la sentencia End de Visual
Basic (End sirve para finalizar completamente la ejecución de nuestro programa). En cambio si
ahora le cambia el caption al Label1 y volvés a ejecutar el proyecto, podés ver que la instrucción
End no se ejecuta, si no que la pasa por alto y sigue con las restantes líneas, en este caso ejecuta
la función MsgBox con el mensaje.
Esta estructura de control repetirá sin detenerse un determinado código mientras se cumpla una
condición.
Por ejemplo supongamos que tenemos una variable llamada x que tiene un valor de 100.
while x = 100
...se ejecutan todas las líneas de código que estén aquí
wend
Mientras (While) la variable x sea igual a 100, y no cambie su valor, se formará un bucle intermi-
nable, hasta que x cambie a cualquier otro valor disto de 100. Si x cambia el valor, por ejemplo
a 234 saldría del bucle While - wend y seguiría ejecutando el resto del código, si es que hay mas
código o instrucciones a ejecutar.
19
ITAE
que mostrará en el Caption del formulario, es decir en la barra de título, el intervalo desde 0
hasta el número que hayamos ingresado en el Text1. Es decir si ingresamos el número 9000, en
el caption del formulario se imprimirán los número desde 0 hasta 9000.
Para hacer esto, dentro del bucle While pondremos una variable llamada Contador, que en cada
pasada se incrementará en 1, pero cuando la variable Contador sea igual al número que haya en
el Text1, se finalizará el bucle y se mostrará un mensaje que finalizó el mismo
‘Incrementamos la variable en 1
contador = contador + 1
Wend
End Sub
La estructura es utilizada para generar una repetición de instrucciones o bucle, pero no evalúa
una condición como en el caso del bucle While, si no que lo hace entre un número inicial y un
número final que le debemos indicar al mismo.
Por ejemplo, tenemos un formulario con un Label1 y declaramos una variable de tipo integer
llamada “contador” como en el caso anterior
Private Sub Command1_Click()
Dim contador As Integer
For contador = 0 To 1000
Label1.Caption = contador
Next contador
End Sub
Primero, tenemos una variable llamada “contador”. Mediante el bucle For - next podemos contro-
lar la cantidad de veces que queremos repetir un determinado proceso o instrucción. Esta posee
20
Manual del Programador - Prof. Freddy Hervias Vargas
un principio y un fin, en este caso el principio sería 0 y el fin 1000, de manera que la variable con-
tador se incrementará en 1 hasta que llegue a 1000, y repetirá 1000 veces todas las instrucciones
que estén bajo la cláusula For-next. En este caso nuestro control Label1 mostraría el contenido
de la variable contador
Para ver en forma detallada y paso a paso esto, pongamos un ejemplo que lo que hace es repetir
10 veces (desde el 1 hasta el 10 en el intervalo del bucle For) y mostrará un mensaje con el valor
de la variable Contador. Una ves que llegue a 10, terminará.
Colocá un Command1. Doble Click en el botón para escribir dentro del procedimiento que se eje-
cutará cuando lo presionemos. El código:
For contador = 1 To 10
Next contador
La estructura Select Case se suele utilizar para evitar el uso de muchas cláusulas If y de esta
manera no tener que anidarlas. La claúsula Select evalúa una condición y las cláusulas case
contienen valores, si el valor que contiene la cláusula case es igual a la condición que se evaluó,
ejecutará las instrucciones en dicha cláusula.
Nombre = Text1
Select Case Nombre
Case “Jorge”
End Select
Esta estructura es muy práctica. En el ejemplo anterior, la cláusula Select case contiene como
condición el valor de la variable llamada Nombre. Esa Variable toma el valor que tenga un con-
trol Text1, entonces buscará en todas las cláusulas case, y si encuentra una igual a la condición,
ejecutará solo las instrucciones de la cláusula case que tenga el mismo valor, por ejemplo si in-
gresara el nombre “Martín” no se ejecutará ninguna cláusula Case. En cambio si ingreso “Jorge”
se ejecutará solo las instrucciones que estén en la sección Case “Jorge” y asi...
21
ITAE
En el caso anterior solo hemos colocado un valor para cada Case. Si quisieramos colocar mas
valores podríamos hacerlo de esta forma:
Case 15, 20
‘Esto no se ejecuta
Case 25, 30
‘Esto tampoco
End Select
End Sub
es decir que podemos listar los valores en los Case separados por comas. En el caso anterior se
ejecutará el case 5, 10 ya que la variable x vale 10
Los operadores nos permiten operar, validar, comparar, asignar, distinguir, etc.., los datos e ins-
trucciones de código de nuestros programas. A continuación los operadores mas importantes.
Operadores aritméticos
Estos operadores nos permiten trabajar con cálculos matemáticos como la suma (+), resta (-),
división (/) y multiplicación (*).
Ejemplos:
a=5
b = 15
c = a + b ‘ en este caso la variable c contendría el valor 20
ganancia = 500
perdida = 200
total = ganancia - perdida ‘la variable total pasaría a valer 300
x = 100
y = 20
z = x / y ‘ La Variable z vale 5
x = 100
y = 20
z = x * y ‘ La Variable z vale 2000
22
Manual del Programador - Prof. Freddy Hervias Vargas
Operadores lógicos
Se utilizan en expresiones para devolver resultados del tipo True o False, es decir Verdadero o
falso. Los mas comunes son el operador And y el operador Or
Ejemplos:
End If
If (m = 10) Or (nombre = “pedro”) Then
End If
Operadores de comparación
Los operadores de comparación se utilizan para comparar expresiones de cualquier tipo. Los
mas importantes son: El operador de igualdad (=), menor que (<), mayor que (>), distinto
a(<>)
Ejemplos:
End If
if x > 6 then
‘si la variable x es mayor que 6 se ejecutará el código que este aquí
end if
If país <> “Estados unidos” Then
‘si la variable país es distinta a “Estados unidos” se ejecutará el código
End If
While c <= 87
‘mientras la variable c sea menor o igual a 87 se ejecutará
‘el bucle While
Wend
Por último quedaría por ver el operador de concatenación (&) que se utiliza para unir cadenas
de caracteres.
Por ejemplo:
23
ITAE
nombre = “Jose”
apellido = “Peralta”
nombrecompleto = nombre & apellido
‘La variable nombrecompleto pasaría a contener la unión de las otras dos variables
‘es decir Jose Peralta
Nota: hay muchos mas operadores en Visual Basic, estos son los básicos
24
Manual del Programador - Prof. Freddy Hervias Vargas
Subrutinas de código,
procedimientos y funciones
Subrutinas de código
Se denomina subrutina a una porción de código que tiene como principal función ejecutar una
determinada tarea. zEstas 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 selec-
cionamos el evento click del mismo
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
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 ten-
drí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.
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 (de-
pende el alcance), seguida del nombre del procedimiento (un nombre que queramos) y los pará-
25
ITAE
metros, si es que le enviaremos parámetros (los parámetros son opcionales). Además el proce-
dimiento debe ser escrito en un lugar vacío de la ventana de código, es decir no se puede crear
un procedimiento dentro de otro
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 hacemos para que se ejecute el procedimiento que he crea-
do?.
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 he-
mos 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í:
ProcedimientoBorrar
End Sub
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 procedimien-
to 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 proce-
dimiento, 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.
26
Manual del Programador - Prof. Freddy Hervias Vargas
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 independiente-
mente, y además la posibilidad de enviar 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 funda-
mental. 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:
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:
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.
End sub
27
ITAE
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:
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 obligatoria-
mente 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:
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:
Esto daría un error de compilación por que el procedimiento espera recibir 2 parámetros ..y no-
sotros le estamos pasando o enviando solo uno de ellos.
28
Manual del Programador - Prof. Freddy Hervias Vargas
Nota: hay una sentencia llamada Optional que SI permite pasar parámetros de forma opcional,
por ejemplo:
MsgBox Nombre
MsgBox Email
End Sub
Ahora si llamas a la rutina anterior, y omites el parámetro Email, esta no dará error, por ejem-
plo:
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:
Función IsMissing
Esta función se utiliza cuando utilizamos parámetros opcionales en una función o procedimiento,
y nosotros, dentro del mismo queremos saber y averiguar si se han enviado los parámetros op-
cionales
El uso de IsMissing muy simple. Esta función retorna el valor True si NO se ha enviado el paráme-
tro que queremos comprobar, y devuelve False si el parámetro ha sido enviado:
29
ITAE
End Sub
--------------------------------------------------------------------------------
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.
Call Sumar(Un_Valor)
End Sub
30
Manual del Programador - Prof. Freddy Hervias Vargas
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 Comm-
mand1.
Al entrar en la Sub Sumar, el dato se modifica ( Valor = Valor + 100). Cuando finaliza el procedi-
miento 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
Este ejemplo es igual que el anterior, pero en la Sub sumar , la variable Valor se declara con ByRef
( por Referencia )
Código
Un_Valor = 100
Call Sumar(Un_Valor)
End Sub
End Sub
31
ITAE
Esto demuestra que al enviar la variable como referencia, si la misma se modifica dentro del pro-
cedimiento 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).
--------------------------------------------------------------------------------
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.
Private Function Total(Valor1 As Integer, Valor2 As Integer) As Long
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:
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.
32
Manual del Programador - Prof. Freddy Hervias Vargas
PRACTICAS DIRIGIDAS
Aplica 01
Crear una aplicación que solicite ingresar dos números enteros y permita realizar las operaciones
matemáticas básicas con dichos números.
Solución:
- 3 etiquetas (Label)
- 3 cajas de Texto
- 1 botón de comando
Una vez terminado el cambio de las propiedades, el formulario se presentará de la siguiente
manera.
General Declaraciones
Dim n2 As Double
Dim suma As Long, resta As Long, multi As Long, diviE As Long
Dim resto As Integer
Dim div As Double
Dim potencia As Double
n1 = Val(txtNumero1.Text)
n2 = Val(txtNumero2.Text)
33
ITAE
‘Proceso
On Error Resume Next ‘Activar la deteccion de errores
suma = n1 + n2
resta = n1 - n2
multi = n1 * n2
div = n1 / n2
diviE = n1 \ n2
resto = n1 Mod n2
potencia = n1 ^ n2
‘Salida de resultados
txtSalida.Text = _
“Suma :” + Str(suma) + vbCrLf & _
“Resta :” + Str(resta) + vbCrLf & _
“Multiplicación :” + Str(multi) + vbCrLf & _
“Division :” + Str(div) + vbCrLf & _
“Division Entera :” + Str(diviE) + vbCrLf & _
“Resto :” + Str(resto) + vbCrLf & _
“Potencia :” + Str(potencia)
If Err Then
MsgBox “Se produce el Error “ & Err & “ “ & Err.Description, vbCritical, “Error”
End If
On Error GoTo 0 ‘Desactivar la deteccion de errores
End Sub
End Sub
Al ejecutar la aplicación se presentará una pantalla como
la siguiente:
34
Manual del Programador - Prof. Freddy Hervias Vargas
Aplica 02
Desarrollar un programa que permita convertir una cantidad dada en metros a sus equivalentes
en: centímetros, pulgadas, pies y yardas. Considere la siguiente información:
- 2 etiquetas (Label)
- 2 cajas de Texto
- 1 botón de comando
Una vez terminado el cambio de las propiedades, el formulario se presentará de la siguiente
manera.
35
ITAE
General
Dim n1, metros, pies, pulgadas, yardas, centimetros As Double
Objeto: Comand1
End Sub
36
Manual del Programador - Prof. Freddy Hervias Vargas
Aplicación 03
Desarrollar un programa que permita, el calculo del pago mensual de un empleado de una em-
presa, se efectúa de la siguiente manera:
El sueldo básico se calcula en base al número total de horas trabajadas basado en una tarifa hora-
ria, al sueldo básico se le aplica una bonificación del 20% obteniendose el sueldo bruto, al sueldo
bruto se le aplica un descuento del 10% obteniéndose el sueldo neto. El programa debe calcular
y mostrar, el sueldo básico, el sueldo bruto y el sueldo neto de un trabajador.
Solución:
- 3 etiquetas (Label)
- 3 cajas de Texto
- 1 botón de comando
Una vez terminado el cambio de las propiedades, el formulario se presentará de la siguiente
manera.
General Declaraciones
‘Declaracion de variables
37
ITAE
Objeto: BotónCalcular
horasTrab = Val(text1.Text)
tarifaHor = Val(text2.Text)
‘Proceso
sueldoBas = horasTrab * tarifaHor
montoBoni = 0.2 * sueldoBas
sueldoBru = sueldoBas + montoBoni
montoDesc = 0.1 * sueldoBru
sueldoNet = sueldoBru - montoDesc
‘Salida de resultados
texte3.Text = _
“Sueldo Básico :” & Str(sueldoBas) & vbCrLf & _
“Bonificación :” & Str(montoBoni) & vbCrLf & _
“Sueldo Bruto :” & Str(sueldoBru) & vbCrLf & _
“Descuentos :” & Str(montoDesc) & vbCrLf & _
“Sueldo Neto :” & Str(sueldoNet)
End Sub
38
Manual del Programador - Prof. Freddy Hervias Vargas
Aplicación 04
Diseñe un programa que determine con que velocidad inicial partió un movil de un determinado
punto y que espacio recorrió conociendo su velocidad final, su aceleración y el tiempo empleado
en el recorrido. Considere las siguientes fórmulas:
e = Vo t + a t2 / 2
Vf = Vo + a t
Donde:
Vf = Velocidad final
Vo = Velocidad inicial
a = aceleración
e = espacio recorrido
t = tiempo empleado en el recorrido
Solución:
- 4 etiquetas (Label)
- 4 cajas de Texto
- 1 botón de comando
Una vez terminado el cambio de las propiedades, el formulario se presentará de la siguiente
manera.
39
ITAE
General Declaraciones
‘Declaracion de variables
Objeto: BotonCalcular
vFin = Val(text1.Text)
aceler = Val(text2.Text)
tiempo = Val(text3.Text)
‘Proceso
vIni = vFin - aceler * tiempo
espacio = vIni * tiempo + aceler * tiempo * tiempo / 2
‘Salida de resultados
text4.Text = _
“La Velocidad Inicial es :” & Str(vIni) & “ m/sg” & vbCrLf & _
“El Espacio Recorrido es :” & Str(espacio) & “ m”
End Sub
40
Manual del Programador - Prof. Freddy Hervias Vargas
Aplicación 05
Diseñe un programa que permita calcular el área y perímetro de un triángulo rectángulo cono-
ciendo la longitud de sus catetos. Si a, b y c representan los tres lados de un triángulo entonces
la fórmula que determina su área será:
A= (p ( p - a ) (p - b ) ( p - c ) ) 1/2
Donde:
p=(a+b+c)/2
Solución:
4 etiquetas
4 cajas de texto
1 botón de comando
General Declaraciones
‘Declaracion de variables
Dim p As Double
Dim a As Double
Dim b As Double
Dim c As Double
Dim area As Double
Dim perimetro As Double
Objeto: BotonCalcular
41
ITAE
Aplicación 06
Escriba un programa que calcule el área total y el volumen de un cilindro. Considere las siguientes
fórmulas:
A = 2 * 3.1416 * r ( r + h )
V = r2 * h
Siendo A el área, V el volumen, r el radio y h la altura.
Solución:
3 etiquetas
3 cajas de texto
1 botón de comando
Una vez terminado el cambio de las propiedades, el formulario se presentará de la siguiente
manera:
General Declaraciones
‘Declaracion de variables
Dim radio As Double
Dim altura As Double
Dim area As Double
Dim volumen As Double
Dim pi As Double
42
Manual del Programador - Prof. Freddy Hervias Vargas
Objeto: botonCalcular
43
ITAE
Aplicación 07
Escriba un programa que solicite el ingreso de un número y determinar si el número ingresado es
par o impar. En cada uno de los casos debe presentar el mensaje respectivo.
Solución:
2 etiquetas
1 cajas de texto
2 botón de comando
Una vez terminado el cambio de las propiedades, el formulario se presentará de la siguiente
manera:
44
Manual del Programador - Prof. Freddy Hervias Vargas
Aplicación 08
Escribir un programa que permita determinar el mayor de tres números ingresados por el tecla-
do.
Solución:
4 etiquetas
3 cajas de texto
2 botón de comando
Una vez terminado el cambio de las propiedades, el formulario se presentará de la siguiente
manera:
If a > b then
if a > c then
mayor = a
else
mayor = c
End if
Else
If b > c then
mayor = b
else
mayor = c
End if
End if
Label1.caption = “El número mayor es:” & Str(mayor)
End Sub
45
ITAE
Aplicación 9
Un instituto categoriza a sus estudiantes según el promedio ponderado obtenido en el ciclo ante-
rior de acuerdo a la siguiente tabla:
Solución:
2 etiquetas
1 cajas de texto
2 botón de comando
Una vez terminado el cambio de las propiedades, el formulario se presentará de la siguiente
manera:
46
Manual del Programador - Prof. Freddy Hervias Vargas
Aplicación 10
Una empresa dedicada a la venta de varios productos paga a sus trabajadores quincenalmente un
porcentaje del total de las ventas efectuadas, de acuerdo a la siguiente tabla:
Diseñar un programa que ingrese el monto total de las ventas efectuadas e imprimir el monto
total de las ventas y el monto a pagar al trabajador. Si se ingresa un monto negativo imprimir el
mensaje “Monto no valido”.
Solución:
47
ITAE
Botón Aceptar
Botón Salir
48
Manual del Programador - Prof. Freddy Hervias Vargas
Aplicación 11
Diseñar un programa que ingrese un número entero e imprima el nombre de una estación del año
de acuerdo con la siguiente tabla:
Número Estación
1 Primavera
2 Verano
3 Otoño
4 Invierno
Solución:
End
End Sub
49
ITAE
Aplicación 12
Escribir un programa que permita imprimir la serie 1,2,3,4, ..........10 un número en cada línea.
Solución:
Dim I As Integer
I=1
txtResultados = “”
Do While I <= 10
txtResultados = txtResultados & Trim(Str(I)) & vbCrLf
I=I+1
Loop
End Sub
End
End Sub
50
Manual del Programador - Prof. Freddy Hervias Vargas
Aplicación 12
Solución:
Botón Aceptar
51
ITAE
Aplicación 13
Escribir un programa que imprima los números pares comprendidos entre 0 y 200
Solución:
‘Proceso
I=0
txtResultados = “”
Do
If I Mod 2 = 0 Then
txtResultados = txtResultados & Trim(Str(I)) & vbCrLf
End If
I=I+1
Loop Until I = 200
End Sub
52
Manual del Programador - Prof. Freddy Hervias Vargas
Aplicación 14
Escribir un programa que permita calcular la suma de los números enteros entre 0 y 100
Solución:
I=0
‘ Proceso
Do While I <= 100
Acumulador = Acumulador + I
I=I+1
Loop
txtResultados = “La suma de los 100 primeros números “ & vbCrLf & _
“enteros es: “ & Trim(Str(Acumulador))
End Sub
53
ITAE
Aplicación 15
Escribir un programa que permita calcular el promedio de notas de un salón de clases. El número
de alumnos se debe ingresar por teclado.
Solución:
54
Manual del Programador - Prof. Freddy Hervias Vargas
Aplicación 16
Solución:
55