Funciones Intrincecas
Funciones Intrincecas
Funciones Intrincecas
Los procedimientos intrínsecos que Visual Basic provee los podemos clasificar en:
Procedimientos para manipular cadenas de caracteres.
Procedimientos para manipular expresiones numéricas.
Procedimientos varios.
"Introducir
valor"
"AF1008G-7"
1
Asimismo, utilizando los operadores de caracteres. Por ejemplo:
'…
If cad1 > cad2 Then …
Decir que una cadena es menor, igual o mayor que otra, significa indicar si está
antes por orden alfabético, si tienen exactamente los mismos caracteres o si está
después por orden alfabético, respectivamente.
FUNCIÓN LEN
CadenaB = "30/06/83"
CadenaC = ""
LongA = Len(CadenaA)
LongB = Len(CadenaB)
2
El valor de LongT es 17, puesto que la longitud de CadenaC es 0.
FUNCIÓN LEFT
Nombre_variable = Left(expresión_de_cadena, n)
CadenaB = Left(CadenaA, 8)
Print CadenaB 'escribe: Programa
For K = 1 To 9
Print Left(CadenaA, K) ' escribe P Pr
FUNCIÓN RIGHT
nombre_variable = Left(expresión_de_cadena, n)
La explicación es idéntica a la dada para Left , con la diferencia de que ahora se
trata de los caracteres de la derecha.
FUNCIÓN MID
SENTENCIA MID
CadenaA = "15/09/99"
CadenaB = "-"
Mid(CadenaA, 3) = CadenaB
Mid(CadenaA, 6) = CadenaB
CadenaA = "abcd"
4
CadenaB = "1234"
Mid(CadenaA, 3) = CadenaB
abl2
FUNCIÓN INSTR
CadenaB = "gram"
FUNCIÓN STRING
************INFORME ALUMNOS************
FUNCIÓN STR
Si número es positivo, el signo más (+), esté presente o no, es sustituido durante la
conversión por un espacio en blanco. El signo menos (-) queda tal cual. Por
ejemplo:
a = 20: b = 30
La función Str sólo reconoce el punto (.) como separador decimal válido. Cuando el
separador decimal pueda ser otro (por ejemplo, en aplicaciones internacionales),
se debe utilizar CStr para convertir un número a una cadena.
FUNCIÓN VAL
6
La función Val ignora los espacios en blanco, tabuladores y saltos de línea que
puedan estar presentes al principio de la expresión_de_cadena. Si el primer
carácter distinto de espacio de la expresión_de_cadena no es numérico (exce pto el
signo -), Val da como resultado un cero. Los caracteres no numéricos que siguen a los
números se ignoran. Por ejemplo:
Dim n As Integer
Dim CadenaA As String, CadenaB As String
La función Val lo reconoce el punto (.) como separador decimal válido. Cuando el
separador decimal pueda ser otro (por ejemplo, en aplicaciones internacionales), se
debe utilizar CDbl para convertir una cadena a un número.
Print CDbI(CadenaA)
FUNCIÓN CHR
For i = 65 To 90
Print Chr(i); 'escribe: ABC ...
Z Next i
FUNCIÓN ASC
código_caracter = Asc(expresión_de_cadena)
CadenaA = "Test"
Print Asc(CadenaA) 'escribe: 84
FUNCIÓN SPACE
cadena = Space(número)
donde número es la cantidad de espacios que se desea contenga la cadena. Por
ejemplo: For c = 1 To 5
CadenaA = Space(c)
Print CadenaA; c
Next c
8
El resultado es:
1
2
3
4
5
VARIABLE DATE
cadena = Date
SENTENCIA DATE
Time = "18:05:23"
FUNCIÓN LCASE
ejemplo:
FUNCIÓN UCASE
cadena = UCase(expresión_de_cadena)
FUNCIÓN LTRIM
1
Da como resultado una copia de la cadena de caracteres especificada, pero sin
espacios en blanco a la izquierda. Su sintaxis es
cadena = LTrim(expresión_de_cadena)
donde expresión_de_cadena es una expresión de caracteres . Por
El resultado es:
abcd
abcd
FUNCIÓN RTRIM
cadena = RTrim(expresión_de_cadena)
donde expresión_de_cadena es una expresión de caracteres.
FUNCIÓN TRIM
FUNCIÓN NOW
Now
1
Esta función devuelve un valor de tipo Date que se corresponde con una cadena de
caracte res de la forma
fh = Now
Print Format(fh, "hh:mm:ss AM/PM, dd-mmm-yyyy")
1
El formulario está compuesto por una caja de texto (txtTexto) superior en la cual se
ingresará el texto al que se le aplicará las funciones nombradas en el frame
Funciones. El resultado de las funciones se mostrará en la etiqueta situada en la
parte inferior del formulario llamada lblMuestra. Como sabrá, existen funciones
que poseen argumentos mediante los cuales se realiza la operación especificada,
como por ejemplo, la función Left, además de necesitar el String, necesita la
cantidad de caracteres a obtener de la cadena especificada. Es por eso que se
muestran caja de texto a la derecha de dichas funciones.
txtCantidadLeft.Enabled = False
txtCantidadRight.Enabled = False
txtCantidadMid.Enabled = False
txtInicio.Enabled = False
txtCadenaBuscada.Enabled = False
End Sub
1
Al hacer clic en mostrar, también deberá validar que los argumentos hayan sido
ingresados, en caso de que sea necesario y aplicar la función elegida mostrando su
resultado en la etiqueta lblMuestra.
Private Sub cmdMostrar_Click()
'Función Len
If optLen.Value Then
lblMuestra.Caption = Len(txtTexto.Text)
End If
'Función LCase
If optLCase.Value Then
lblMuestra.Caption = LCase(txtTexto.Text)
End If
'Función UCase
If optUCase.Value Then
lblMuestra.Caption = UCase(txtTexto.Text)
End If
'Función LTrim
If optLTrim.Value Then
lblMuestra.Caption = LTrim(txtTexto.Text)
End If
'Función RTrim
If optRTrim.Value Then
lblMuestra.Caption = RTrim(txtTexto.Text)
End If
'Función Trim
If optTrim.Value Then
1
lblMuestra.Caption = Trim(txtTexto.Text)
End If
'Función Left
If optLeft.Value Then
txtCantidadLeft.SetFocus
Exit
Sub End If
lblMuestra.Caption=Left(txtTexto.Text,txtCantidadLeft.Text)
End If
'Función Right
If optRight.Value Then
If txtCantidadRight.Text = "" Then
txtCantidadRight.SetFocus
Exit
Sub End If
lblMuestra.Caption=Right(txtTexto.Text,txtCantidadLeft.Text)
End If
'Función Mid
If optMid.Value Then
txtInicio.SetFocus
1
Exit Sub
End If
txtCantidadMid.SetFocus
Exit
Sub End If
lblMuestra.Caption=Mid(txtTexto.Text, _
txtInicio.Text,txtCantidadLeft.Text)
End If
'Función InStr
If optInstr.Value Then
If txtCadenaBuscada.Text = "" Then
MsgBox "Debe ingresar la cadena buscada."
txtCadenaBuscada.SetFocus
Exit Sub
End If
lblMuestra.Caption=InStr(txtTexto.Text,txtCadenaBuscada.Text)
End If
End Sub
Una expresión numérica puede ser una constante, una variable, una función o
conjunto de constantes, variables y funciones unidas por operadores.
FUNCIONES TRIGONOMÉTRICAS
1
Las siguientes funciones dan como resultado los valores del seno, coseno, tangente
y arco tangente, respectivamente. Su sintaxis es
valor = Sin(ángulo)
valor = Cos(ángulo)
valor = Tan(ángulo)
ángulo = Atn(valor)
donde ángulo es una expresión numérica que indica un ángulo en radianes y valor
presenta el seno, el coseno o la tangente.
x = InputBox("Angulo en grados")
Print "Coseno de "; x; " igual a "; Cos(f *
x) t = Tan(f * x)
Print "Tangente de "; x; " igual a "; t
Log da como resultado el logaritmo neperiano (base e) y Exp da como valor del
número e elevado a la expresión. Su sintaxis es
variable = Log(expresión)
variable = Exp(expresión)
Donde expresión puede ser cualquier expresión numérica. En el caso de la
función Log, la expresión debe ser positiva.
El número e tiene por valor 2.718282.
PROCEDIMIENTOS VARIOS
1
FUNCIÓN TIMER
FUNCIÓN RND
Rnd devuelve un número al azar de tipo Single mayor o igual que 0 y menor que 1.
Su sintaxis es
variable = Rnd[(expresión)]
límitesup = 49
1
1ímiteinf = 1
For i = 1 To 15
'Escribir 15 números entre límiteinf y límitesup
Print Int((límitesup - límiteinf + 1) * Rnd + límiteinf)
Next i
For i = 1 To 5
Next i
SENTENCIA RANDOMIZE
donde n es una expresión entera que se utiliza para activar una secuencia aleatoria
determinada. Si se omite, se utiliza el valor devuelto por el reloj del sistema.
DateAdd
Devuelve un valor de tipo Variant (Date) con una fecha a la que se ha agregado un
intervalo de tiempo especificado. Su sintaxis es la s iguiente:
Intervalo Descripción
1
yyyy Año
q Trimestre
m Mes
d Día
w Día de la
semana
ww Semana
h Hora
n Minuto
s Segundo
Si desea agregar días a fecha, puede utilizar Día del año (“y”), Día (“d”) o Día de la
semana (“w”).
DateAdd("m", 1, "31-ene-95")
2
Si número no es un valor de tipo Long se redondeará al número entero más
cercano antes de ser evaluado.
DateDiff
DateDiff(intervalo,fecha1,fecha2[,primerdíasemana[,primerasemanaaño]])
Donde Intervalo es requerido y representa una expresión de tipo cadena con el
intervalo de tiempo utilizado para calcular la diferencia entre fecha1 y fecha2.
Intervalo Descripción
yyyy Año
q Trimestre
m Mes
d Día
w Día de la
semana
ww Semana
h Hora
n Minuto
s Segundo
vbMonday 2 Lunes
vbTuesday 3 Martes
vbWednesd 4 Miércoles
ay
vbThursday 5 Jueves
vbFriday 6 Viernes
vbSaturday 7 Sábado
Si desea saber el número de días entre fecha1 y fecha2, puede utilizar Día del año
(“y”) o Día (“d”). Cuando intervalo es Día de la semana (“w”), DateDiff devuelve el
número de semanas entre las dos fechas. Si fecha1 es lunes, DateDiff contará el
número de lunes hasta fecha2 . En la cuenta incluirá fecha2, pero no fecha1. Si
intervalo es Semana (“ww”), la función DateDiff
devolverá el número de semanas entre las dos fechas. En este caso contará el
número de domingos entre fecha1 y fecha2 . DateDiff contará fecha2 si es domingo,
pero no fecha1, aunque sea domingo.
El argumento primerdíasemana afecta a los cálculos que utilizan “w” y “ww” como
símbolos de intervalo.
DatePart
Puede utilizar la función DatePart para evaluar una fecha y devolver un intervalo
de tiempo específico. Por ejemplo, podría utilizar DatePart para calcular el día de
la semana o la hora actual.
Función IsNull
IsNull(expresión)
El argumento expresión puede ser cualquier expresión.
IsNull devuelve True si expresión es Null, es decir, si contiene datos no válidos. De
lo contrario, IsNull devuelve False. Si expresión consta de más de una variable, Null
en cualquier variable hace que se devuelva True para la expresión completa.
El valor Null indica que la variable contiene datos no válidos. Null no es igual que
Empty, que indica que una variable aún no está iniciada. Tampoco es igual qu e una
cadena de longitud cero (“”), también conocida como cadena nula.
Use la función IsNull para determinar si una expresión contiene o no un valor Null.
Expresiones que bajo algunas circunstancias esperaría que fuesen igual a True,
como
2
If Var = Null
o
If Var <> Null,
siempre son iguales a False. Esto se debe a que cualquier expresión que contiene
Null es igual a Null y es, por lo tanto, igual a False.
El siguiente ejemplo usa la función IsNull para determinar si una variable
Función IsEmpty
Devuelve un valor de tipo Boolean que indica si una variable está iniciada. Su
sintaxis es:
IsEmpty(expresión)
El argumento expresión puede ser cualquier expresión. Sin embargo, como IsEmpty se
usa para determinar si están iniciadas variables individuales, con frecuencia el
argumento expresión es un único nombre de variable.
El siguiente ejemplo usa la función IsEmpty para determinar si una variable está
True.
Función IsNumeric
Devuelve un valor de tipo Boolean que indica si una expresión se puede evaluar
como un número. Su sintaxis es la siguiente:
IsNumeric(expresión)
El argumento expresión puede ser cualquier expresión.
IsNumeric devuelve True si toda la expresión se reconoce como un número. De lo
contrario, devuelve False. IsNumeric devuelve False si expresión es una expresión
de fecha.
El siguiente ejemplo usa la función IsNumeric para determinar si una variable se puede
evaluar como un número:
True.
2
MiComprobacion = IsNumeric(MiVar) ' Devuelve False.
Función IsDate
IsDate(expresión)
El argumento expresión puede ser cualquier expresión de fecha o expresión de
cadena reconocible como fecha u hora.
SuFecha =
#10/19/62#
CUADROS DE MENSAJES
MsgBox
2
MsgBox(mensaje[, botones][, título][, helpfile, context])
La sintaxis de la función MsgBox consta de estos argumentos con nombre:
Argumento Descripción
Mensaje Requerido. Expresión de cadena que representa el mensaje en
el cuadro de diálogo. La longitud máxima de mensaje es de
aproximadamente 1024 caracteres, según el ancho de los
caracteres utilizad os. Si mensaje consta de más de una línea,
puede separarlos utilizando un carácter de retorno de carro
(Chr(13)) o un carácter de avance de línea (Chr(10)), o una
combinación de caracteres de retorno de carro -avance de línea
(Chr(13) y Chr(10)) entre cada línea y la siguiente.
Botones Opcional. Expresión numérica que corresponde a la suma de los
valores que especifican el número y el tipo de los botones que
se pretenden mostrar, el estilo de icono que se va a utilizar, la
identidad del botón predeterminado y la modalidad del cuadro
de mensajes. Si se omite este
argumento, el valor predeterminado para botones es 0.
título Opcional. Expresión de cadena que se muestra en la barra de
título del cuadro de diálogo. Si se omite título, en la barra de
título se coloca el nombre de la aplicación.
helpfile Opcional. Expresión de cadena que identifica el archivo de
Ayuda que se utiliza para proporcionar ayuda interactiva en el
cuadro de diálogo. Si se especifica helpfile, también se debe
especificar context.
context Opcional. Expresión numérica que es igual al número de
contexto de Ayuda asignado por el autor al tema de Ayuda
correspondiente. Si se especifica context, también se debe
especificar helpfile.
Valores
Nota: Estas constantes las especifica Visual Basic for Applications. Por tanto, el
nombre de las mismas puede utilizarse en cualquier lugar del código en vez de
sus valores reales.
Valores devueltos:
2
Constante Valor Descripción
vbOK 1 Aceptar
vbCancel 2 Cancelar
3
vbAbort 3 Anular
vbRetry 4 Reintentar
vbIgnore 5 Ignorar
vbYes 6 Sí
vbNo 7 No
Cuando se proporcionan tanto helpfile como context, el usuario puede presionar F1
para ver el tema de Ayuda correspondiente al context.
Nota: Si desea especificar más que el primer argumento con nombre, debe utilizar
MsgBox en una expresión. Si desea omitir algún argumento de posición, debe
incluir el delimitador de coma correspondiente.
3
MiCadena = "Sí" ' Ejecuta una acción
Else ' El usuario eligió el botón No
MiCadena = "No" ' Ejecuta una acción
End If
ENTRADA DE DATOS
En Visual Basic, una forma de introducir un dato sería utilizando la caja de dialogo
provista por InputBox.
La función InputBox visualiza una caja de diálogo semejante a la de la figura siguiente,
con un mensaje que indica al usuario el tipo de información que debe introducir;
devuelve como resultado un valor de tipo String que se corresponde con el dato
tecleado. Su sintaxis es:
argumentos:
Por ejemplo:
SALIDA DE DATOS
Según hemos visto el método Print visualiza datos en un formulario (objeto Form).
Así mismo, permite visualizar datos en la ventana Inmediato a través del objeto
Debug, en una caja de imagen (control PictureBox) o en una impresora (utilizando el
objeto Printer). Su sintaxis es
Print x; y + 5;
W Print n; m
3
Print "El valor de"; b; "+"; c; "="; b + c
? a; b
No obstante, cuando el corrector sintáctico comprueba la sintaxis de la sentencia
anterior, sustituye automáticamente el símbolo ? por Print.
?a
?a*5
? 10 / 2 + 3
La posición de cada elemento a visualizar está determinada por la puntuación
utilizada para separar los elementos en la lista de expresiones. Visual Basic divide la
línea en zonas de 14 espacios cada una, cuando se utiliza como separador una coma.
En la lista de expresiones, una coma produce un salto al inicio de la zona siguiente.
Un punto y coma produce la visualización de la expresión, inmediatamente
después de la última visualizada. Por ejemplo:
a=5
3
El resultado que se obtiene al ejecutar las sentencias anteriores, suponiendo que
hemos elegido una fuente proporcional, por ejemplo Courier New, (elegir una
fuente significa asignar a la propiedad Font del formulario, si es que estamos
imprimiendo sobre el formulario) es:
1 2 3
12345678901234567890123456789012345
5 25 -25
5 25 -25
FIN DEL PROCESO
Observe que un resultado numérico va seguido de un espacio y que el signo
positivo es sustituido por un espacio.
a = 50
Print a,
a=a*-
2 Print a
Print
Print "FIN ";
En este ejemplo, la coma al final de la segunda línea hace que el siguiente Print, línea
cuarta, se escriba en la misma línea y no en una nueva línea. Igualmente sucede con
3
las dos últimas sentencias.
El método Print ¿sobre qué objeto visualiza los datos? La respuesta es: sobre el
objeto para el que es invocado Print. Por ejemplo el procedimiento
'. . .
Print "DATOS PERSONALES"
Print
Print "Nombre y Apellido: "; NomAp
Direccion
End Sub
pertenece al formulario. Esto lo podríamos haber indicado explícitamente así:
Private Sub cmd Ingreso_Click()
'Entrada de datos
'Salida de datos
3
Form1.Print
Form1.Print "Nombre y Apellido: "; NomAp