Está en la página 1de 25

FUNCIONES PROPIAS DE VISUAL BASIC

Se describen las funciones propias del lenguaje que permiten trabajar con
cadenas de caracteres, con nmeros, fechas, horas, presentar mensajes en
pantalla y muchas otras funciones para formatear datos especficos.

Contenido

1 - Funciones para el tratamiento de cadenas

1.1 - Funcin Lcase y Ucase

1.2 - Funcin Trim, LTrim y RTrim

1.3 - Funcin Len

1.4 - Funcin Asc y Chr

1.5 - Funcin InsTr

1.6 - Funcin Left, Right y Mid

1.7 - Funcin Str y Val

2 - Funciones para el tratamiento de nmeros

2.1 - Funcin Round

2.2 - Rnd y Randomize - Nmeros aleatorios

2.3 - Otras funciones

3 - Funciones de formato

4 - Funciones de formato para fechas y hora

4.1 - Funciones para calcular fechas

4.2 - Funciones para obtener la fecha y hora de la PC

6 - Funciones para presentar mensajes - InputBox y


MSgbox

7 - Ejemplos

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
'Convertimos
cadena

cadena
=

As

String

"HOLA

MUNDO"

'La variable cadena ahora vale "hola mundo"

LCase(cadena)

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
=
Pas = Trim(Pais)

"

Ahora el valor de Pas es igual a: "Argentina".

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:

Dim
Dim
MiCadena

TamanoCadena

As

MiCadena
=

As
"Me

Llamo

Long
String
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 = Asc("a")

num

As

Integer

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
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
En este enlace hay un ejemplo que usa la funcin instrRev
Extraer de un path o ruta, solo la extensin del archivo

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

Cadena
=

Left("Ya

As
es

la

String
madrugada",

'Cadena, que es un string, sera igual a: "Ya es la"


Funcin Right:

9)

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

nombre
Mid("River

perdi

As
la

copa",

String
7,
6)

'La variable nombre sera igual a: "perdi"


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
cadena

=
=

"123456"
Val(cadena)

'Ahora

cadena

cadena2
cadena2

vale
=

123456
123456
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

Minumero
=
Round(245.8)
'(La
funcin
devuelve
Minumero
=
Round(245.3)
'(La
funcin
devuelve
Minumero = Round(245.5) '(La funcin devuelve 245)

Long
246)
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


previamente la funcin Randomize con la siguiente frmula:

Dim
Dim

LimiteInferior
LimiteSuperior

As
As

utilizar

Integer
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
Nota: en este enlace pods ver un ejemplo que permite generar nmeros
aleatorios no repetidos

Funciones matemticas
Las principales funciones matemticas provistas por Visual Basic son:

Abs: Devuelve el valor absoluto de una expresin numrica.

Atn: Devuelve el arco tangente de un nmero.

Cos: Devuelve el coseno de un ngulo.

Exp: Devuelve el nmero "e" elevado a una potencia.

Log: Devuelve el logaritmo natural de un nmero.

Sgn: Devuelve un valor indicando el signo de un nmero.

Sin: Devuelve el seno de un ngulo.

Sqr: Devuelve la raz cuadrada de un nmero.

Tan: Devuelve la tangente de un ngulo.

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:

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".

FormatPercent: Esta funcin es utilizada para trabajar con


porcentajes.

Ejemplo

si tendramos un nmero 321, nos devolvera: "32,1%" .

FormatDateTime: Esta funcin trabaja con fechas y horas.

FormatNumber: Formatea expresiones nmeros

Resultado
=
FormatPercent(321)
'devuelve:
"32.100,00%"
Resultado
=
FormatCurrency(3)
'devuelve:
"$3,00"
Resultado
=
FormatDateTime("6-8-1978")
'La
funcin
devolvera: "06/08/1978"
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, como muestra el
grfico:

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
Numero

Numero
=

As

=
FormatNumber(Numero,

MsgBox Numero
Formatea 1.958754 a 1,96

Double
2,

0.489698
vbFalse)

Dim

Numero

Numero
Numero

As
=
FormatNumber(Numero,

Double
1.958754
2)

MsgBox Numero
Funcin Format:
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:

GeneralNumber: Devuelve el nmero sin formato.

Currency: Devuelve el nmero en formato moneda, con el


smbolo "$" y 2 decimales a las derecha.

Fixed: Devuelve como mnimo un dgito a la izquierda y 2 ala


derecha del decimal.

Standar: Similar a Fixed pero incluye un separador de miles.

Percent: Multiplica el nmero por cien y le agrega el smbolo


"%"

True/False: Devuelve Verdadero para un valor distinto de 0,y


Falso para 0.

On/OFF: Devuelve "Activado" para un valor distinto de 0, y


"Desactivado" para 0.

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

cadena = Format("06/08/78",
"06/08/1978"

"General

String
Date")

'

Devuelve:

cadena = Format("19/08/79", "Long Date") ' Devuelve : "Jueves


19
de
Agosto
de
1979".
cadena = Format("19/8/79", "Medium Date") ' Devuelve: "19Ago-1979"
cadena
cadena

=
=

Format("17:08",
Format("17:08",

"Short
"Medium

Time")
Time")

'

'

"05:08

cadena = Format("17:08", "Long Time") ' "05:08:00 PM"

4.1 - Funciones para calcular fechas

"05:08"
PM"

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
Me.Print "Calcular Intervalos entre las fechas
Fecha_Inicial & _

" &

"
hasta :" & Fecha_Final & vbNewLine &
String(150, "-") & vbNewLine

Me.Print
Format(DateDiff("s",
Fecha_Final), Formato) & " segundos"

Fecha_Inicial,

Me.Print
Format(DateDiff("n",
Fecha_Final), Formato) & " minutos"

Fecha_Inicial,

Me.Print
Format(DateDiff("h",
Fecha_Final), Formato) & " horas"

Fecha_Inicial,

Me.Print
Format(DateDiff("y",
Fecha_Final), Formato) & " dias"

Fecha_Inicial,

Me.Print
Format(DateDiff("WW",
Fecha_Final), Formato) & " semanas"

Fecha_Inicial,

Me.Print
Format(DateDiff("m",
Fecha_Final), Formato) & " meses"

Fecha_Inicial,

Me.Print
Format(DateDiff("yyyy",
Fecha_Final), Formato) & " aos"

Fecha_Inicial,

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"
En el siguiente enlace pods ver algunos otros ejemplos que trabajan con
dichas funciones
Funciones para trabajar con fechas en visual basic
Calcular edad de una persona usando DateDiff
Averiguar con Dateserial, el Primer y ltimo da de un mes

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
Date

para
(La

establecer
fecha

la

fecha

que

hora

queremos

de

la

PC:

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:

InputBox (Promt,Title, Default)

El parmetro Prompt especfica la leyenda que mostrar la caja


de mensajes.

El parmetro Title especifica el ttulo que llevar el cuadro de


dilogo.

El parmetro Default es el texto que mostrar la caja de texto.

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

retorno =
"Ejemplo")

InputBox("Ingrese

As
algo

en

la

String
caja

de

texto",

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

Enlace relacionado :
InputBox con PasswordChar

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.
Ejemplos de mensajes o cajas de texto con la funcin MsgBox que podemos
mostrar:

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:

Title : Es la leyenda que aparecer en el ttulo del mensaje.

Texto : Es el Texto que mostrar el mensaje.

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.

También podría gustarte