Funciones propias de visual basic

27
FUNCIONES PROPIAS DE VISUAL BASIC Se describen las funciones propias del lenguaje que permiten trabajar con cadenas de caracteres, con números, fechas, horas, presentar mensajes en pantalla y muchas otras funciones para formatear datos específicos. Contenido 1 - Funciones para el tratamiento de cadenas 1.1 - Función Lcase y Ucase 1.2 - Función Trim, LTrim y RTrim 1.3 - Función Len 1.4 - Función Asc y Chr 1.5 - Función InsTr 1.6 - Función Left, Right y Mid 1.7 - Función Str y Val 2 - Funciones para el tratamiento de números 2.1 - Función Round 2.2 - Rnd y Randomize - Números 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

Transcript of Funciones propias de visual basic

Page 1: Funciones propias de visual basic

FUNCIONES PROPIAS DE VISUAL BASIC

Se describen las funciones propias del lenguaje que permiten trabajar con cadenas de caracteres, con números, fechas, horas, presentar mensajes en pantalla y muchas otras funciones para formatear datos específicos.

Contenido

1 - Funciones para el tratamiento de cadenas

1.1 - Función Lcase y Ucase

1.2 - Función Trim, LTrim y RTrim

1.3 - Función Len

1.4 - Función Asc y Chr

1.5 - Función InsTr

1.6 - Función Left, Right y Mid

1.7 - Función Str y Val

2 - Funciones para el tratamiento de números

2.1 - Función Round

2.2 - Rnd y Randomize - Números 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

Page 2: Funciones propias de visual basic

Las funciones de cadena , como su nombre lo indica, se utilizan para trabajar y tratar las cadenas de caracteres.

A continuación las mas importantes de ellas.

1.1 - Función Lcase y Ucase

Estas dos funciones se utilizan para convertir cadenas de texto a minúscula y mayúscula.La función Lcase cambia o convierte una cadena de texto a minúscula y un ejemplo de como utilizarla sería así:

Lcase (cadena que queremos convertir a minúsculas)

Ejemplo:

Dim cadena As String

cadena = "HOLA MUNDO"

'Convertimoscadena = LCase(cadena)

'La variable cadena ahora vale "hola mundo"

La función Ucase funciona de la misma manera que Lcase pero convierte el contenido de una cadena a mayúsculas.

Por ejemplo, si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de sueldos", escribiendo la siguiente línea:

Label1 = UCase(Label1)

El control Label1 pasaría a mostrar o mejor dicho contener en su propiedad caption:"PORCENTAJE DE SUELDOS".

1.2 - Función Trim, LTrim y RTrim

Page 3: Funciones propias de visual basic

Estas tres funciones se utilizan para eliminar los espacios vacíos de una cadena.

LTrim elimina los espacios vacíos 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 vacíos de la izquierda haríamos lo siguiente:

ciudad = LTrim(ciudad)

Si en un TextBox quisieramos borrar todos los espacios vacíos de la parte derecha de la cadena:

MiText = RTrim(MiText)

La Función Trim elimina todos los espacios vacíos de ambos lados de la cadena. Ejemplo:

Pais = " Argentina "País = Trim(Pais)

Ahora el valor de País es igual a: "Argentina".

1.3 - Función Len

La función Len nos permite conocer la cantidad de caracteres que tiene una determinada cadena. O sea que esta función nos devuelve un número.

Ejemplo:

Len (Aquí va la cadena que queremos averiguar su tamaño)

Como la función Len devuelve un número debemos asignar ese número devuelto en una variable de tipo numérica.

Ejemplo:

Page 4: Funciones propias de visual basic

Dim TamanoCadena As Long

Dim MiCadena As String

MiCadena = "Me Llamo Eustaquio"

TamanoCadena = Len(MiCadena)

El valor de la variable TamanoCadena pasaría a valer 18.

Hay que tener en cuenta que la función Len también toma en cuenta los espacios vacíos.

1.4 - Función Asc y Chr

La función Asc nos permite obtener el código ASCII de un de terminado caracter.

Ejempos:

Si queremos obtener el código ASCII del caracter "a", que es el número 97 podríamos hacer lo siguiente:

Dim num As Integer

num = Asc("a")

En definitiva la función Asc lleva un solo parámetro de tipo String del cual queremos obtener dicho número.

La Función Chr actúa a la inversa de la función Asc, esto quiere decir, que a partir de un determinado número nos devolverá el caracter ASCII.

Obviamente que en vez de pasarle a la función un parámetro String es decir la letra, debemos pasarle un número ASCII y nos devolverá el carácter asociado.

Ejemplo:

Dim letra As String

letra = Chr(97)

Page 5: Funciones propias de visual basic

La variable pasa a valer en este caso el caracter "a"

1.5 - Función InsTr

La función InStr se utiliza para buscar una cadena o parte de una cadena dentro de otra cadena.

Si la función encuentra la cadena a buscar devuelve un número que representa la posición donde encontró la cadena, si no la encuentra devuelve un 0.

Los parámetros que lleva esta función son:

InStr (comienzo, Cadena donde buscar , La Cadena a buscar)

Como esta función devuelve un número debemos almacenarla en una variable de tipo numérica para utilizarla.

Ejemplo:

Dim posicion As Integer

posicion = InStr("Estoy tomando mate", "mate")

En este ejemplo la función encontró la cadena "mate" en la posición 15, o sea que la variable posición pasa a valer 15.

Si observamos bien, la función en el primer parámetro, denominado comienzo, nos pide que le digamos desde que posición comenzar a buscar. En nuestro ejemplo, este parámetro lo obviamos, esto quiere decir que comenzará desde la posición 0 de la cadena a buscar. Pero podríamos especificar una posición en particular, por ejemplo desde la 5 , 10 etc..., según lo que necesitemos hacer.

Otro ejemplo de InsTr :

Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene dos opciones, un botón para buscar la primera frase, y otro que sigue buscando a partir de donde esté ubicda la selección.

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.

También colocar dos CommandButton: Command1 y Command2

Page 6: Funciones propias de visual basic

Colocar el siguiente código 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

Page 7: Funciones propias de visual basic

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 pocición

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: también hay una función similar a Instr llamada InstrRev , y lo que hace es devolver la posición de la primera concurrencia de una cadena dentro de otra cadena, pero comenzando por el extremo derecho de la misma

Page 8: Funciones propias de visual basic

En este enlace hay un ejemplo que usa la función instrRev

Extraer de un path o ruta, solo la extensión del archivo

Función Left, Right y Mid

Estas funciones son utilizadas para extraer partes de una cadena.

La función Left:

tiene 2 parámetros: El primero es la cadena de la cual se extraerán caracteres, y el segundo un número 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, sería igual a: "Ya es la"

Función Right:

Es igual que la función Left pero comienza a extraer caracteres desde el lado derecho de la cadena.

La función Mid:

Tiene la misma función que las anteriores pero posee tres parámetros. Su sintaxis es:

Mid (cadena, inicio, longitud)

El parámetro cadena es la cadena a extraer caracteres. El parámetro Inicio es donde comenzar y el parámetro longitud, es la cantidad de caracteres a extraer de la cadena de caracteres

Ejemplos:

Dim nombre As Stringnombre = Mid("River perdió la copa", 7, 6)

Page 9: Funciones propias de visual basic

'La variable nombre sería igual a: "perdió"

Este Otro ejemplo usa la función Mid para realizar un simple efecto tipo máquina de escribir.

Colocar en un formulario un CommandButton y el siguiente código 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)

Page 10: Funciones propias de visual basic

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

Page 11: Funciones propias de visual basic

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 - Función Str y Val

La función Val convierte una cadena en un número yla función Str un número en una cadena.

Ejemplos:

cadena = "123456"cadena = Val(cadena)

'Ahora cadena vale 123456

cadena2 = 123456cadena2 = Str(cadena2)

'Ahora cadena2 vale "123456"

2 - Funciones para el tratamiento de números

Visual Basic posee muchas funciones para tratar números. A continuación las principales funciones.

2.1 - Función Round

La función Round se utiliza para redondear un número decimal, devolviendo un número entero.

Page 12: Funciones propias de visual basic

Ejemplo:

Dim Mimumero As Long

Minumero = Round(245.8) '(La función devuelve 246)Minumero = Round(245.3) '(La función devuelve 245)Minumero = Round(245.5) '(La función devuelve 245)

Round posee un parámetro opcional por si queremos incluir los dígitos decimales.

2.2 - Rnd y Randomize - Números aleatorios

Para generar números aleatorios, Visual Basic incluye 2 funciones: Rnd y Randomize.

La función Rnd devuelve un número aleatorio, y esta posee un solo parámetro.

Ejemplo :

Rnd (número)

Pero para poder generar dichos números aleatorios, debemos utilizar previamente la función Randomize con la siguiente fórmula:

Dim LimiteInferior As IntegerDim LimiteSuperior As Integer

LimiteInferior = 20

LimiteSuperior = 40

MsgBox Int((LimiteInferior - LimiteSuperior + 1) * Rnd + LimiteInferior)

En el ejemplo anterior, se generarán números aleatorios comprendidos entre el 20 y el 40

Nota: en este enlace podés ver un ejemplo que permite generar números aleatorios no repetidos

Page 13: Funciones propias de visual basic

Funciones matemáticas

Las principales funciones matemáticas provistas por Visual Basic son:

Abs: Devuelve el valor absoluto de una expresión numérica.

Atn: Devuelve el arco tangente de un número.

Cos: Devuelve el coseno de un ángulo.

Exp: Devuelve el número "e" elevado a una potencia.

Log: Devuelve el logaritmo natural de un número.

Sgn: Devuelve un valor indicando el signo de un número.

Sin: Devuelve el seno de un ángulo.

Sqr: Devuelve la raíz cuadrada de un número.

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 información. A continuación se ve algunos ejemplos de las principales funciones:

FormatCurrency: Esta función se utiliza para trabajar con

números con formato en dinero. Ejemplo:

si tenemos un número 3 y utilizamos la función nos devolvería

"$3".

FormatPercent: Esta función es utilizada para trabajar con

porcentajes. Ejemplo :

si tendríamos un número 321, nos devolvería: "32,1%" .

FormatDateTime: Esta función trabaja con fechas y horas.

FormatNumber: Formatea expresiones números

Resultado = FormatPercent(321) 'devuelve: "32.100,00%"Resultado = FormatCurrency(3) 'devuelve: "$3,00"

Page 14: Funciones propias de visual basic

Resultado = FormatDateTime("6-8-1978") 'La función devolvería: "06/08/1978"

NumDigitsAfterDecimal: Parámetro de tipo opcional. Este indicará cuantos números decimales devolverá la función:

Ejemplo

cadena = FormatCurrency(325, 3) 'Devuelve: "$325,000"

Ejemplo de la función FormatDateTime

Esta función, en el primer parámetro se le debe pasar la fecha u hora a formatear, y el segundo parámetro es el tipo de formato, pueden ser 5 tipos.

vbGeneralDate, vbLongDate, vbShortDate, vbLongTime y vbShortTime.

Este parámetro es de tipo opcional. al colocar la coma dentro de la función , visual basic despliega la lista de constanetas mencionadas, como muestra el gráfico:

Un ejemplo para ver estos formatos utilizando FormatDateTime: Colocar cinco option Button, cada botón de opción mostrará los diferentes formatos en el caption del formulario, es decir en la barra de título.

Page 15: Funciones propias de visual basic

Código 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:

Page 16: Funciones propias de visual basic

Formatea 0.489698 a 0,49

Dim Numero As Double

Numero = 0.489698Numero = FormatNumber(Numero, 2, vbFalse)

MsgBox Numero

Formatea 1.958754 a 1,96

Dim Numero As Double

Numero = 1.958754Numero = FormatNumber(Numero, 2)

MsgBox Numero

Función Format:

La función Format es mas completa que las anteriores funciones, porque puede manejar mas tipos de datos, y no devuelve solo cadenas, esta también puede devolver números y fechas.

La función Format posee dos parámetros:

Format (Expresión, formato)

En el primero debemos colocar cualquier expresión válida. El segundo es opcional y a continuación veremos una descripción de los formatos de VB:

GeneralNumber: Devuelve el número sin formato.

Currency: Devuelve el número en formato moneda, con el

símbolo "$" y 2 decimales a las derecha.

Fixed: Devuelve como mínimo un dígito a la izquierda y 2 ala

derecha del decimal.

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

Page 17: Funciones propias de visual basic

Percent: Multiplica el número por cien y le agrega el símbolo

"%"

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 parámetro es entre comillas.

Ejemplo:

cadena = Format(75, "Currency") ' Devolvería: "$75,00"

Nota: Si ingresamos un número decimal, debemos utilizar el "." y no la coma "," ya que la coma determina el comienzo de otro parámetro dentro de la función y Visual basic daría 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"

Page 18: Funciones propias de visual basic

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 cálculos

DateAdd : Devuelve un Variant que contiene una fecha que indica el intervalo de tiempo que se ha agregado

DateDiff : Devuelve el número de intervalos de tiempo entre dos fechas determinadas

DatePart : Devuelve una parte específica de una fecha dada

DateSerial : Devuelve un valor Date para un año, mes y día determinados

Ejemplos

El siguiente ejemplo utiliza la función DateDiff para mostrar el itervalo entre dos fechas. El intervalo lo muestra en segundos , minutos, dias, semanas meses y años, como muestra el siguiente gráfico

Colocar en el formulario un Command1.

Option Explicit

' recibe las dos fechas como parámetros

Page 19: Funciones propias de visual basic

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

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_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) & " años"

End Sub

Private Sub Command1_Click()

Page 20: Funciones propias de visual basic

' le pasa las dos fechas a la función

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 añadir y restar fechas

' agrega 10 años 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 parámetro intervalo la "S", para minutos usar la "n", para horas la "h", para restar y sumar semanas la "ww"

En el siguiente enlace podés ver algunos otros ejemplos que trabajan con dichas funciones

Funciones para trabajar con fechas en visual basic

Calcular edad de una persona usando DateDiff

Page 21: Funciones propias de visual basic

Averiguar con Dateserial, el Primer y último día de un mes

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

Dim Cadena As StringCadena = Date ' Devuelve el día 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.

Función InputBox:

La función InputBox presenta un mensaje al usuario, permitiéndole ingresar un valor en una caja de texto:

Como se dijo la función InputBox presenta un cuadro de diálogo donde el usuario puede ingresar un texto y luego aceptar o cancelar dicho cuadro de diálogo.

Los parámetros principales de esta función son:

Page 22: Funciones propias de visual basic

InputBox (Promt,Title, Default)

El parámetro Prompt específica la leyenda que mostrará la caja

de mensajes.

El parámetro Title especifica el título que llevará el cuadro de

diálogo.

El parámetro 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 específica 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 botón de Aceptar.

Cuando el usuario presiona Candelar, el InputBox devuelve una cadena vacía. Esto es importante tenerlo en cuenta para realizar una o tal acción

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 condición en un bucle Do Loop

Código fuente en el formulario

Private Sub Form_Load()

Dim Dato As String

Page 23: Funciones propias de visual basic

' 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

Función MsgBox:

La función MsgBox, que ya se vió varias veces en distintos ejemplos, es muy fácil de usar y se utiliza para mostrar distintos tipos de mensajes.

Ejemplos de mensajes o cajas de texto con la función MsgBox que podemos mostrar:

Page 24: Funciones propias de visual basic

Como se ve en los gráficos anteriores, con MsgBox podemos tener variedad a la hora de mostrar un determinado mensaje, utilizando para ello las diferentes constantes que incorpora la función.

Los parámetros mas importantes son:

Title : Es la leyenda que aparecerá en el título del mensaje.

Texto : Es el Texto que mostrará el mensaje.

Botones: En este parámetro se colocan las constantes que

determinarán si la caja tiene uno o varios botones y el tipo de

mensaje: informativo, de exclamación de alerta etc... Cuando

escribimos la coma dentro de la función en el parámetro

botones, Visual Basic despliega una lista con las opciones o

constantes que podemos utilizar.