Está en la página 1de 16

15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi

http://www.identi.li/index.php?topic=230584 1/16
Posts Comunidades TOPs Buscador Buscar...
New Full User
10
Seguidores
130
Puntos
5
Posts
26
Comentarios
Tags



[Funciones] & [Mtodos] Visual Basic 6
CATEGORA: TUTORIALES / CURSOS PUBLICADO HACE MS DE 1 AO
1 - Subrutinas de cdigo
Se denomina subrutina a una porcin de cdigo que tiene como principal funcin 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 pblicas.
En el siguiente ejemplo se muestra una subrutina que crea visual basic automticamente cuando en un formulario insertamos un
botn 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 mdulo 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 quisiramos que estos procedimientos se puedan llamar desde otro formulario, lo que tendramos que hacer es cambiar el
alcance del procedimiento, en ves de Private Sub cambiarlo por Public Sub. si hacemos esto, ese procedimiento de cdigo puede
ser utilizado desde cualquier parte del proyecto.

Subrutinas y Procedimientos propios

Tambin podemos crear nuestros propios Procedimientos y Subrutinas de cdigo para ejecutar una determinada tarea.
Para crear un procedimiento de cdigo se debe escribir la palabra Private sub o Public sub (depende el alcance), seguida del
nombre del procedimiento (un nombre que queramos) y los parmetros, si es que le enviaremos parmetros (los parmetros son
opcionales). Adems el procedimiento debe ser escrito en un lugar vaco de la ventana de cdigo, 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 funcin especfica de borrar el contenido de 3 controles label.
Pero ahora te preguntars como hago para que se ejecute el procedimiento que he creado ?.
VeneCodigo
Seguir Usuario MP
Funciones mtodos
visual basic
Tutoriales tutorial
Inicio Udenti VerOnline Regstrate Accede
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 2/16
Muy fcil. 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), Tambin un Commandbutton llamado
Command1 y en la ventana de cdigo 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 haramos as:

Private Sub command1_click()
ProcedimientoBorrar
End Sub

Al presionar el Command1 visual basic detectara el nombre ProcedimientoBorrar, y automticamente saltara al lugar donde
creamos el procedimiento y ejecutara las lneas de cdigo que haya en ese procedimiento.
Tambin 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 parmetros, debemos pasarlos entre
parntesis ( los parmetros de procedimientos y funciones se explican a continuacin)
una vez que se ha terminado de ejecutar las instrucciones que estn dentro del bloque del procedimiento, volvera a la lnea
siguiente de donde fue llamado el mismo, y ejecutara todas las lneas restantes de cdigo. En este caso no ejecutara nada mas
por que no hemos puesto ninguna otra instruccin debajo de ProcedimientoBorrar.
La principal ventaja de crear procedimientos de cdigo es que evita tener que escribir varias veces las mismas instrucciones en un
programa, el cdigo se hace mucho mas funcional y entendible, se pueden dividir un problema (una rutina), en varios
procedimientos y probarlos independientemente, y adems la posibilidad de enviar parmetros a los procedimientos

1.1 - Pasar parmetros a los procedimientos:
Se utilizan los parmetros en los procedimientos para que el procedimiento no ejecute siempre las mismas lneas de cdigo y
pueda variar, teniendo la posibilidad de hacerlo mas dinmicamente. En ciertas ocaciones no es necesario enviar parmetros, pero
en otras es prcticamente fundamental. Los parmetros 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 parmetros: El primero es un nombre y es un dato de tipo String y por ende debe ir entre comillas.
El segundo es un nmero y el tercero tambin un string. , o sea una cadena de caracteres
Pero la cosa no queda ac. Si nosotros vamos a pasar parmetros a un procedimiento, cuando creamos el procedimiento debemos
establecer que tipo de parmetros va a recibir el mismo. Ejemplo:
Private Sub DatosPersonales(nombre As String, edad As Integer, ciudad As String)
Label1 = nombre
Label2 = edad
Label3 = ciudad
End Sub
siguiendo, el ejemplo anterior creamos un procedimiento con tres parmetros. Cada parmetro 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 podramos por ejemplo, en el evento click de un Command1, llamar al procedimiento y pasarle los parmetros.
Coloca un Command1 , 3 controles Label, copia en la ventana de cdigo el procedimiento anterior llamado DatosPersonales, y
ahora pega el siguiente cdigo
Private sub command1_click()
DatosPersonales "Luciano", 25, "La plata"
End sub

Al presionar el botn se llamar al procedimiento que habamos creado anteriormente, y le pasar los valores de los parmetros en
el orden en que estn establecidos declarados en el procedimiento. Esto quiere decir que el primer parmetro 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.
Despus 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 parmetros en un procedimiento, por que por ejemplo en el caso anterior
si hubisemos pasado los parmetros de esta forma:

15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 3/16
DatosPersonales 25, "Luciano", "La plata"

el segundo parmetro "Luciano" se almacenara en la variable Edad que es de tipo Integer y se producira un error en tiempo de
ejecucin por no coincidir los tipos de datos, ya que la variable espera un valor numrico 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 parmetros, cuando lo llamemos,
no podemos enviarle solo 1 parmetro, debemos obligatoriamente pasarle los 2 parmetros que hubisemos declarado en
el mismo. Un ejemplo que dara un error en tiempo de ejecucin por no pasar adecuadamente los parmetros sera:

Private Sub sumar(a As Integer, b As Integer)
Label1 = a + b
End Sub
hasta aqu creamos un procedimiento llamado sumar que recibir 2 parmetros de tipo Integer, si nosotros llamamos al
procedimiento y le pasamos un solo valor, por ejemplo:
Call sumar ( 456 )

Esto dara un error de compilacin por que el procedimiento espera recibir 2 parmetros ..y nosotros le estamos pasando o
enviando solo uno de ellos.

Nota: hay una sentencia llamada Optional que SI permite pasar parmetros 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 parmetro Email, esta no dar error, por ejemplo:

Call Con_Parametro_Opcional("Maria")

Nota: Los parmetros opcionales, si o si deben estar declarados al final de la lista de parmetros, por ejemplo esto no se puede
hacer:

Private sub una_Rutina ( Optional Email As String, Nombre as String )

Funcin IsMissing
Esta funcin se utiliza cuando utilizamos parmetros opcionales en una funcin o procedimiento, y nosotros, dentro del mismo
queremos saber y averiguar si se han enviado los parmetros opcionales
El uso de IsMissing muy simple. Esta funcin retorna el valor True si NO se ha enviado el parmetro que queremos comprobar, y
devuelve False si el parmetro ha sido enviado:
por ejemplo , colocar dos CommandButton

Private Sub Mostrar_Dato(Optional Nombre As Variant)

' Si IsMissing devuelve Verdadero, es por que no se env
If IsMissing(Nombre) = True Then
MsgBox " NO Se ha enviado el parmetro NOMBRE ", vbInformation
Else
MsgBox " Se ha enviado el parmetro NOMBRE ", vbInformation
End If

End Sub
'Ac No se enva el parmetro
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 4/16
Private Sub Command1_Click()
Mostrar_Dato
End Sub
'Ac Si se enva el parmetro
Private Sub Command2_Click()
Mostrar_Dato "Mara"
End Sub

1.3 - Pasar parmetros por valor y por referencia ( ByVal y ByRef )
los parmetros en las funciones y procedimientos, se pueden enviar de dos maneras: por Valor y por Referencia.
Si estn declarados como ByVal, los mismos sern por valor, si se declaran como ByRef sern por referencia.
La diferencia entre uno y otro mtodo de paso de parmetros, es que en ByVal se enva una copia de la variable, y de esta manera
si se efecta un cambio en el procedimiento, solo tendr efecto dentro del procedimiento o funcin, una ves que termine y finalice
el mismo, la variable original pasar a valer el dato que tena, es decir no se modifica
En los parmetros enviados por Referencia, lo que se hace es enviar un puntero de la variable original. Entonces, si en la funcin o
procedimiento se cambia el valor de la variable, el cambio seguir mantenindose una ves que finalice la ejecucin del
procedimiento o funcin.

1.4 - Ejemplo de envo de parmetros por Valor ( ByVal )

Cdigo de ejemplo
Private Sub Command1_Click()
Dim Un_Valor As Long
Un_Valor = 100
'Se enva la variable por Valor ( ByVal )
Call Sumar(Un_Valor)
'Muestra el valor que es 100, ( no se modific en la funcin 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 parmetro 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 lnea
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 enva una copia de la variable original y cualquier cambio que se
produzca, ser solo en el mbito del procedimiento o funcin

1.5 - Ejemplo de envo de parmetros por Referencia ( ByRef )
Este ejemplo es igual que el anterior, pero en la Sub sumar , la variable Valor se declara con ByRef ( por Referencia )
Cdigo
Private Sub Command1_Click()
Dim Un_Valor As Long
Un_Valor = 100
'Se enva la variable por Referencia ( ByRef ) con el valor 100
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 5/16
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 cdigo, 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 funcin, 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 parmetro de una funcin o Rutina ni ByVal, ni ByRef, se asume que la misma se
est enviando como referencia (ByRef).
Es decir lo siguiente recibe el parmetro como Referencia
Sub Sumar(Valor As Long)
.. que es lo mismo a esto:
Sub Sumar(ByRef Valor As Long)

2 - Las 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 cdigo, en como se le pasa los parmetros etc..
La diferencia fundamental con respecto a los procedimientos o subrutinas es que estos, luego de ejecutar el cdigo 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 cdigo que contienen y luego mueren por decirlo de alguna manera.

Para declarar o crear una funcin podramos escribir lo siguiente:
Private Function Total(Valor1 As Integer, Valor2 As Integer) As Long
Total = Valor1 + Valor2
End Function

Seguramente notaste que declaramos la funcin llamada Total, y al final de los parmetros dice As Long , esto es por que como
dijimos las funciones retornan o devuelven un valor, o sea que en este caso la funcin 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 nmeros, cadenas, fechas,
arreglos y vectores
Para llamar a la funcin anterior podramos hacerlo de la siguiente manera:
Label1.caption = Total 502, 1478

En este caso el control Label1 llamara a la funcin Total , la funcin realizara la suma de los valores pasados como
parmetros y por ltimo el valor final de la suma se lo asignara al control label1.
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 6/16
1 - Funciones para el tratamiento de cadenas
Las funciones de cadena , como su nombre lo indica, se utilizan para trabajar y tratar las cadenas de caracteres.
A continuacin las mas importantes de ellas.
1.1 - Funcin Lcase y Ucase
Estas dos funciones se utilizan para convertir cadenas de texto a minscula y mayscula.
La funcin Lcase cambia o convierte una cadena de texto a minscula y un ejemplo de como utilizarla sera as:
Lcase (cadena que queremos convertir a minsculas)

Ejemplo:
Dim cadena As String
cadena = "HOLA MUNDO"
'Convertimos
cadena = LCase(cadena)
'La variable cadena ahora vale "hola mundo"

La funcin Ucase funciona de la misma manera que Lcase pero convierte el contenido de una cadena a maysculas.
Por ejemplo, si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de sueldos", escribiendo la siguiente lnea:
Label1 = UCase(Label1)

El control Label1 pasara a mostrar o mejor dicho contener en su propiedad caption:"PORCENTAJE DE SUELDOS".
1.2 - Funcin Trim, LTrim y RTrim
Estas tres funciones se utilizan para eliminar los espacios vacos de una cadena.
LTrim elimina los espacios vacos de la parte izquierda de la cadena, RTrim de la parte derecha y Trim de ambas partes.
Ejemplos:
Tenemos una variable llamada ciudad con el valor " Barcelona". Para eliminar los espacios vacos de la izquierda haramos lo
siguiente:
ciudad = LTrim(ciudad)

Si en un TextBox quisieramos borrar todos los espacios vacos de la parte derecha de la cadena:
MiText = RTrim(MiText)

La Funcin Trim elimina todos los espacios vacos de ambos lados de la cadena. Ejemplo:
Pais = " Argentina "
Pas = Trim(Pais)
Ahora el valor de Pas es igual a: "Argentina".
1.3 - Funcin Len
La funcin Len nos permite conocer la cantidad de caracteres que tiene una determinada cadena. O sea que esta funcin nos
devuelve un nmero.
Ejemplo:
Len (Aqu va la cadena que queremos averiguar su tamao)

Como la funcin Len devuelve un nmero debemos asignar ese nmero devuelto en una variable de tipo numrica.
Ejemplo:
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 7/16
Dim TamanoCadena As Long
Dim MiCadena As String
MiCadena = "Me Llamo Eustaquio"
TamanoCadena = Len(MiCadena)

El valor de la variable TamanoCadena pasara a valer 18.
Hay que tener en cuenta que la funcin Len tambin toma en cuenta los espacios vacos.

1.4 - Funcin Asc y Chr
La funcin Asc nos permite obtener el cdigo ASCII de un de terminado caracter.
Ejempos:
Si queremos obtener el cdigo ASCII del caracter "a", que es el nmero 97 podramos hacer lo siguiente:
Dim num As Integer

num = Asc("a")
En definitiva la funcin Asc lleva un solo parmetro de tipo String del cual queremos obtener dicho nmero.
La Funcin Chr acta a la inversa de la funcin Asc, esto quiere decir, que a partir de un determinado nmero nos devolver el
caracter ASCII.
Obviamente que en vez de pasarle a la funcin un parmetro String es decir la letra, debemos pasarle un nmero ASCII y nos
devolver el carcter asociado.
Ejemplo:
Dim letra As String
letra = Chr(97)
La variable pasa a valer en este caso el caracter "a"

1.5 - Funcin InsTr
La funcin InStr se utiliza para buscar una cadena o parte de una cadena dentro de otra cadena.
Si la funcin encuentra la cadena a buscar devuelve un nmero que representa la posicin donde encontr la cadena, si no la
encuentra devuelve un 0.
Los parmetros que lleva esta funcin son:
InStr (comienzo, Cadena donde buscar , La Cadena a buscar)
Como esta funcin devuelve un nmero debemos almacenarla en una variable de tipo numrica para utilizarla.
Ejemplo:
Dim posicion As Integer
posicion = InStr("Estoy tomando mate", "mate")
En este ejemplo la funcin encontr la cadena "mate" en la posicin 15, o sea que la variable posicin pasa a valer 15.
Si observamos bien, la funcin en el primer parmetro, denominado comienzo, nos pide que le digamos desde que posicin
comenzar a buscar. En nuestro ejemplo, este parmetro lo obviamos, esto quiere decir que comenzar desde la posicin 0 de la
cadena a buscar. Pero podramos especificar una posicin en particular, por ejemplo desde la 5 , 10 etc..., segn lo que
necesitemos hacer.

Otro ejemplo de InsTr :
Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene dos opciones, un botn para buscar la primera
frase, y otro que sigue buscando a partir de donde est ubicda la seleccin.
Para armar el ejemplo colocar un Textbox llamado Text_Buscar que es donde se ingresar la frase y otro TextBox llamado Text1
que tendr el texto. Este ultimo con la propiedad Multiline en True.
Tambin colocar dos CommandButton: Command1 y Command2

Colocar el siguiente cdigo fuente en el formulario:
Option Explicit
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 8/16
Private m_Pos As Integer
Sub buscar_cadena(ByVal Posicion As Integer)
Dim p As Integer, Frase As String
Frase = txt_Buscar

p = InStr(Posicion, Text1, Frase)

If p > 0 Then
m_Pos = p

With Text1
.SelStart = m_Pos - 1
.SelLength = Len(Frase)
.SetFocus
End With
Else
MsgBox "No se encontr la frase", vbInformation
Text1.SetFocus
End If
End Sub
Private Sub Command1_Click()
'Busca a pratir de la primera pocicin
Call buscar_cadena(1)
End Sub
Private Sub Command2_Click()
'Busca a partir del valor que tenga m_Pos
Call buscar_cadena(m_Pos + 1)
End Sub
Private Sub Form_Load()
Command1.Caption = "Buscar"
Command2.Caption = "Buscar siguiente"
Me.Caption = "Ejemplo de InStr "
End Sub

Nota: tambin hay una funcin similar a Instr llamada InstrRev , y lo que hace es devolver la posicin de la primera concurrencia
de una cadena dentro de otra cadena, pero comenzando por el extremo derecho de la misma

Funcin Left, Right y Mid
Estas funciones son utilizadas para extraer partes de una cadena.
La funcin Left:
tiene 2 parmetros: El primero es la cadena de la cual se extraern caracteres, y el segundo un nmero desde el cual comenzar a
extraer caracteres desde la parte izquierda.
Ejemplo:
Dim Cadena As String
Cadena = Left("Ya es la madrugada", 9)
'Cadena, que es un string, sera igual a: "Ya es la"

Funcin Right:
Es igual que la funcin Left pero comienza a extraer caracteres desde el lado derecho de la cadena.
La funcin Mid:
Tiene la misma funcin que las anteriores pero posee tres parmetros. Su sintaxis es:
Mid (cadena, inicio, longitud)
El parmetro cadena es la cadena a extraer caracteres. El parmetro Inicio es donde comenzar y el parmetro longitud, es la
cantidad de caracteres a extraer de la cadena de caracteres
Ejemplos:
Dim nombre As String
nombre = Mid("River perdi la copa", 7, 6)
'La variable nombre sera igual a: "perdi"
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 9/16

Este Otro ejemplo usa la funcin Mid para realizar un simple efecto tipo mquina de escribir.
Colocar en un formulario un CommandButton y el siguiente cdigo fuente en el form.
Option Explicit
Sub Pausa(Segundos As Double)

Dim inicio As Double

' Devuelve la cantidad de segundos desde que inicio windows
inicio = Timer

Do While (Timer - inicio) < Segundos
' pausa
DoEvents
Loop
End Sub
Private Sub Command1_Click()

Dim texto As String

texto = "... Hola mundo --->>> "

Call MostrarTexto(texto, 0.1, Me)
End Sub
Private Sub MostrarTexto(Frase As String, _
Segundos As Double, _
Destino As Object)

Dim LenFrase As Integer
Dim i As Integer
Dim Caracter As String
Dim texto As String

LenFrase = Len(Frase)

Do While i <= LenFrase
Destino.Cls

DoEvents
i = i + 1
' Obtiene el siguiente caracter
Caracter = Mid(Frase, i, 1)
' texto actual
texto = texto & Caracter
Destino.Print texto ' Imprimi e/ dibuja el texto
' pausa o delay
Pausa Segundos
DoEvents
Loop
End Sub
Private Sub Form_Load()
Me.FontSize = 12
Me.Font.Bold = True
Me.ForeColor = vbRed
Command1.Caption = " Efecto de texto con mid "
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub


1.6 - Funcin Str y Val
La funcin Val convierte una cadena en un nmero yla funcin Str un nmero en una cadena.
Ejemplos:
cadena = "123456"
cadena = Val(cadena)
'Ahora cadena vale 123456
cadena2 = 123456
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 10/16
cadena2 = Str(cadena2)
'Ahora cadena2 vale "123456"

2 - Funciones para el tratamiento de nmeros
Visual Basic posee muchas funciones para tratar nmeros. A continuacin las principales funciones.

2.1 - Funcin Round
La funcin Round se utiliza para redondear un nmero decimal, devolviendo un nmero entero.
Ejemplo:
Dim Mimumero As Long
Minumero = Round(245.8) '(La funcin devuelve 246)
Minumero = Round(245.3) '(La funcin devuelve 245)
Minumero = Round(245.5) '(La funcin devuelve 245)
Round posee un parmetro opcional por si queremos incluir los dgitos decimales.

2.2 - Rnd y Randomize - Nmeros aleatorios
Para generar nmeros aleatorios, Visual Basic incluye 2 funciones: Rnd y Randomize.
La funcin Rnd devuelve un nmero aleatorio, y esta posee un solo parmetro.
Ejemplo :
Rnd (nmero)

Pero para poder generar dichos nmeros aleatorios, debemos utilizar previamente la funcin Randomize con la siguiente frmula:
Dim LimiteInferior As Integer
Dim LimiteSuperior As Integer
LimiteInferior = 20
LimiteSuperior = 40
MsgBox Int((LimiteInferior - LimiteSuperior + 1) * Rnd + LimiteInferior)
En el ejemplo anterior, se generarn nmeros aleatorios comprendidos entre el 20 y el 40

Funciones matemticas
Las principales funciones matemticas provistas por Visual Basic son:
[ul][li]Abs: Devuelve el valor absoluto de una expresin numrica.[/li][li]Atn: Devuelve el arco tangente de un nmero.[/li][li]Cos:
Devuelve el coseno de un ngulo.[/li][li]Exp: Devuelve el nmero "e" elevado a una potencia.[/li][li]Log: Devuelve el logaritmo
natural de un nmero.[/li][li]Sgn: Devuelve un valor indicando el signo de un nmero.[/li][li]Sin: Devuelve el seno de un ngulo.
[/li][li]Sqr: Devuelve la raz cuadrada de un nmero.[/li][li]Tan: Devuelve la tangente de un ngulo.[/li][/ul]



3 - Funciones de formato
Visual Basic posee varias funciones para darle formato a distintos tipos de datos e informacin. A continuacin se ve algunos
ejemplos de las principales funciones:
[ul][li]FormatCurrency: Esta funcin se utiliza para trabajar con nmeros con formato en dinero. Ejemplo:
si tenemos un nmero 3 y utilizamos la funcin nos devolvera "$3".[/li][li]FormatPercent: Esta funcin es utilizada para trabajar
con porcentajes. Ejemplo :
si tendramos un nmero 321, nos devolvera: "32,1%" .[/li][li]FormatDateTime: Esta funcin trabaja con fechas y horas.[/li]
[li]FormatNumber: Formatea expresiones nmeros[/li][/ul]

Resultado = FormatPercent(321) 'devuelve: "32.100,00%"
Resultado = FormatCurrency(3) 'devuelve: "$3,00"
Resultado = FormatDateTime("6-8-1978") 'La funcin devolvera: "06/08/1978"

15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 11/16
NumDigitsAfterDecimal: Parmetro de tipo opcional. Este indicar cuantos nmeros decimales devolver la funcin:
Ejemplo
cadena = FormatCurrency(325, 3) 'Devuelve: "$325,000"

Ejemplo de la funcin FormatDateTime

Esta funcin, en el primer parmetro se le debe pasar la fecha u hora a formatear, y el segundo parmetro es el tipo de formato,
pueden ser 5 tipos.
vbGeneralDate, vbLongDate, vbShortDate, vbLongTime y vbShortTime.
Este parmetro es de tipo opcional. al colocar la coma dentro de la funcin , visual basic despliega la lista de constanetas
mencionadas.

Un ejemplo para ver estos formatos utilizando FormatDateTime: Colocar cinco option Button, cada botn de opcin mostrar los
diferentes formatos en el caption del formulario, es decir en la barra de ttulo.


Cdigo en el formulario:
Private Sub Form_Load()
Option1.Caption = " vbGeneralDate "
Option2.Caption = " vbLongDate "
Option3.Caption = " vbShortDate "
Option4.Caption = " vbLongTime "
Option5.Caption = " vbShortTime "
End Sub
Private Sub Option1_Click()
Me.Caption = FormatDateTime(Now, vbGeneralDate)
End Sub
Private Sub Option2_Click()
Me.Caption = FormatDateTime(Now, vbLongDate)
End Sub
Private Sub Option3_Click()
Me.Caption = FormatDateTime(Now, vbShortDate)
End Sub
Private Sub Option4_Click()
Me.Caption = FormatDateTime(Now, vbLongTime)
End Sub
Private Sub Option5_Click()
Me.Caption = FormatDateTime(Now, vbShortTime)
End Sub

FormatNumber - Ejemplos:

Formatea 0.489698 a 0,49
Dim Numero As Double
Numero = 0.489698
Numero = FormatNumber(Numero, 2, vbFalse)
MsgBox Numero
Formatea 1.958754 a 1,96
Dim Numero As Double
Numero = 1.958754
Numero = FormatNumber(Numero, 2)
MsgBox Numero

Funcin Format:
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 12/16
La funcin Format es mas completa que las anteriores funciones, porque puede manejar mas tipos de datos, y no devuelve solo
cadenas, esta tambin puede devolver nmeros y fechas.
La funcin Format posee dos parmetros:
Format (Expresin, formato)

En el primero debemos colocar cualquier expresin vlida. El segundo es opcional y a continuacin veremos una descripcin de los
formatos de VB:
[ul][li]GeneralNumber: Devuelve el nmero sin formato.[/li][li]Currency: Devuelve el nmero en formato moneda, con el
smbolo "$" y 2 decimales a las derecha.[/li][li]Fixed: Devuelve como mnimo un dgito a la izquierda y 2 ala derecha del decimal.
[/li][li]Standar: Similar a Fixed pero incluye un separador de miles.[/li][li]Percent: Multiplica el nmero por cien y le agrega el
smbolo "%"[/li][li]True/False: Devuelve Verdadero para un valor distinto de 0,y Falso para 0.[/li][li]On/OFF: Devuelve
"Activado" para un valor distinto de 0, y "Desactivado" para 0.[/li][/ul]
La forma de pasar el parmetro es entre comillas.
Ejemplo:
cadena = Format(75, "Currency") ' Devolvera: "$75,00"

Nota: Si ingresamos un nmero decimal, debemos utilizar el "." y no la coma "," ya que la coma determina el comienzo de otro
parmetro dentro de la funcin y Visual basic dara error de sintaxis
4 - Funciones de formato para fechas y hora

Ejemplos de los principales Formatos con nombre para el manejo de Fechas y Horas:
Funciones para Fechas

Dim cadena As String
cadena = Format("06/08/78", "General Date") ' Devuelve: "06/08/1978"
cadena = Format("19/08/79", "Long Date") ' Devuelve : "Jueves 19 de Agosto de 1979".
cadena = Format("19/8/79", "Medium Date") ' Devuelve: "19-Ago-1979"
cadena = Format("17:08", "Short Time") ' "05:08"
cadena = Format("17:08", "Medium Time") ' "05:08 PM"
cadena = Format("17:08", "Long Time") ' "05:08:00 PM"
4.1 - Funciones para calcular fechas
Visual basic cuenta con una serie de funciones que nos permiten calcular fechas y horas, por ejemplo generar un intervalo de
fechas, sumar y restar fechas y horas y otras operaciones y clculos
DateAdd : Devuelve un Variant que contiene una fecha que indica el intervalo de tiempo que se ha agregado
DateDiff : Devuelve el nmero de intervalos de tiempo entre dos fechas determinadas
DatePart : Devuelve una parte especfica de una fecha dada
DateSerial : Devuelve un valor Date para un ao, mes y da determinados

Ejemplos
El siguiente ejemplo utiliza la funcin DateDiff para mostrar el itervalo entre dos fechas. El intervalo lo muestra en segundos ,
minutos, dias, semanas meses y aos, como muestra el siguiente grfico

Colocar en el formulario un Command1.
Option Explicit
' recibe las dos fechas como parmetros
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Private Sub
Calcular(Fecha_Inicial As Date, _
Fecha_Final As Date)

Const Formato As String = "#,##0"

Me.Cls
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 13/16
Me.Print "Calcular Intervalos entre las fechas " & Fecha_Inicial & _
" hasta :" & Fecha_Final & vbNewLine & String(150, "-") & vbNewLine


Me.Print Format(DateDiff("s", Fecha_Inicial, Fecha_Final), Formato) & " segundos"
Me.Print Format(DateDiff("n", Fecha_Inicial, Fecha_Final), Formato) & " minutos"
Me.Print Format(DateDiff("h", Fecha_Inicial, Fecha_Final), Formato) & " horas"

Me.Print Format(DateDiff("y", Fecha_Inicial, Fecha_Final), Formato) & " dias"
Me.Print Format(DateDiff("WW", Fecha_Inicial, Fecha_Final), Formato) & " semanas"
Me.Print Format(DateDiff("m", Fecha_Inicial, Fecha_Final), Formato) & " meses"
Me.Print Format(DateDiff("yyyy", Fecha_Inicial, Fecha_Final), Formato) & " aos"

End Sub
Private Sub Command1_Click()
' le pasa las dos fechas a la funcin
Call Calcular("01/01/2000", Date)
End Sub
Private Sub Form_Load()
Me.AutoRedraw = True
Command1.Caption = "calcular intervalos "
End Sub

Ejemplo con DateAdd
Lo siguiente, muestra como aadir y restar fechas
' agrega 10 aos a la fecha actual
MsgBox DateAdd("yyyy", 10, Date)
' Agrega cinco meses a la fecha actual
MsgBox DateAdd("m", 5, Date)
' resta 1 dias a la fecha actual ( usa el signo -)
MsgBox DateAdd("y", -1, Date)

Nota: para restar, usar el signo negativo, como se usa en el ltimo ejemplo.
Para poder restar y agregar segundos a una hora, usar en el parmetro intervalo la "S", para minutos usar la "n", para horas la
"h", para restar y sumar semanas la "ww"

4.2 - Funciones para obtener la fecha u hora actual de la PC

Dim Cadena As String
Cadena = Date ' Devuelve el da del sistema en este formato: "02/08/2004"
Cadena = Time ' Devuelve la hora del sistema en este formato: "17:32:51"
'Funciones para establecer la fecha u hora de la PC:
Date = (La fecha que queremos establecer)
Time = (La hora que queremos establecer)

5 - Funciones para presentar mensajes

Visual Basic posee 2 tipos de funciones para presentar mensajes, ellas son MsgBox e InputBox.
Funcin InputBox:
La funcin InputBox presenta un mensaje al usuario, permitindole ingresar un valor en una caja de texto

Como se dijo la funcin InputBox presenta un cuadro de dilogo donde el usuario puede ingresar un texto y luego aceptar o
cancelar dicho cuadro de dilogo.
Los parmetros principales de esta funcin son:
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 14/16
InputBox (Promt,Title, Default)

[ul][li]El parmetro Prompt especfica la leyenda que mostrar la caja de mensajes.[/li][li]El parmetro Title especifica el ttulo que
llevar el cuadro de dilogo.[/li][li]El parmetro Default es el texto que mostrar la caja de texto.[/li][/ul]

El aspecto mas importante de InputBox es que nos devuelve una cadena con lo que haya ingresado el usuario en la caja de texto.
Luego podemos realizar una tarea especfica dependiendo del valor devuelto.
Ejemplo:
Dim retorno As String
retorno = InputBox("Ingrese algo en la caja de texto", "Ejemplo")
MsgBox "Usted ingres:" & retorno

En el ejemplo anterior, en la variable Retorno se almacenar el valor que haya ingresado el usuario cuando haga Click en el botn
de Aceptar.
Cuando el usuario presiona Candelar, el InputBox devuelve una cadena vaca. Esto es importante tenerlo en cuenta para realizar
una o tal accin
Si quiseramos por ejemplo desplegar un InputBox, y que este no se cierre hasta que el usuario si o si haya ingresado un valor,
podemos hacerlo de la siguiente forma, utilizando una condicin en un bucle Do Loop

Cdigo fuente en el formulario
Private Sub Form_Load()

Dim Dato As String

' Hasta que no se ingrese un dato, _
el InputBox no se cerrar
Do
Dato = InputBox("Ingresar algun dato", " Ejemplo ")
Loop Until Dato <> ""

'Muestra el valor
MsgBox Dato, vbInformation

End Sub




Funcin MsgBox:
La funcin MsgBox, que ya se vi varias veces en distintos ejemplos, es muy fcil de usar y se utiliza para mostrar distintos tipos
de mensajes.

Como se ve en los grficos anteriores, con MsgBox podemos tener variedad a la hora de mostrar un determinado mensaje,
utilizando para ello las diferentes constantes que incorpora la funcin.
Los parmetros mas importantes son:
[ul][li]Title : Es la leyenda que aparecer en el ttulo del mensaje.[/li][li]Texto : Es el Texto que mostrar el mensaje.[/li]
[li]Botones: En este parmetro se colocan las constantes que determinarn si la caja tiene uno o varios botones y el tipo de
mensaje: informativo, de exclamacin de alerta etc... Cuando escribimos la coma dentro de la funcin en el parmetro botones,
Visual Basic despliega una lista con las opciones o constantes que podemos utilizar.[/li][/ul]
Hasta la prxima!!!!!!!!!
[VeneCodigo]
[Funciones] & [Mtodos] Visual Basic 6
Recomienda este post a tus amigos.
0
6 0 0 Google + 0 Meneame 0
15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 15/16
15 Puntos Score: 5/10
Visitas: 1950 Favoritos: 6
1 2 3 4 5 6 7 8 9 10
Califica este Post:

Ms del Autor...
Ver los usuarios que votaron...
9 Comentarios
[Funciones] & [Mtodos] Visual Basic 6
Agregar a Favoritos Denunciar
Adobe Creative Suite 6 Master Collection [MEGA]
Trabajando con ADO Viual Basic 6.0
Agartha - hace ms de 1 ao
will065 - hace ms de 1 ao
ahora estoy con php...pero pronto me aplicare en visual.net...ojala encuentra algo asi en identi
lecher - hace ms de 1 ao
mucha lectura ahi lo pase a vos para escuchar el texto:
http://vozme.com/speech/es-ml/76/76e9af684d95c679371f0bbe8b6d5aaf.mp3
jul357 - hace ms de 1 ao
gracias amigo +5 y deberas es una lastima que te limiten el puntuar en esta categoria porque esto es de +10
LordGoe - hace ms de 1 ao
Excelente, interesante, muy bien explicado y extremadamente til.
reformau - hace ms de 1 ao
Gracias, voy a revisarlo
locopoet - hace ms de 1 ao
que groso +5

15/9/2014 [Funciones] & [Mtodos] Visual Basic 6 - Identi
http://www.identi.li/index.php?topic=230584 16/16
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!
Buscar...
Seguir a @Identi_
32 109 Me gusta
4L3X574R - hace ms de 8 meses
Gracias amigo, a jugar con visual
faron1989 - hace ms de 8 meses
muy util! tenes idea como hacer para interralacion con una base de datos?
Ayuda (Proximamente)
Contacto
Protocolo
Terminos y Condiciones
Sobre Identi (Proximamente)
Reportar Problemas (Proximamente)
2009-2014 Identi - Todos los derechos reservados

También podría gustarte