UNIVERSITARIO : ROLANDO FREDDY QUISPE LLANQUE
CARRERA : CONTADURIA PÚBLICA
MATERIA : INFORMÁTICA
LICENCIADA : JULIE CARLA AGUIRRE MONTALVO
FUNCIONES INTRÍNCECAS DE VISUAL BASIC
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.
PROCEDIMIENTOS PARA CADENAS DE CARACTERES
Una cadena de caracteres es sinónimo de constante de caracteres (se denomina
también literal) y es simplemente una secuencia de caracteres ANSI encerrados
entre comillas. Por ejemplo:
"Introducir
valor"
"AF1008G-7"
Una cadena de caracteres puede ser manipulada directamente o a través de una
variable de caracteres o variable alfanumérica en la que se haya almacenado
previamente. Por ejemplo:
Dim etiqueta As String
etiqueta=InputBox("Etiqueta)
etiqueta = etiqueta & "O1"
Utilizando el operador de concatenación (&) y los procedimientos de cadenas de
caracteres, podemos agrupar las variables y las constantes de caracteres para
formar una expresión de caracteres.
1
Asimismo, utilizando los operadores de caracteres. Por ejemplo:
Dim cad As String, cad2 As String
'…
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.
A continuación vamos a realizar un estudio de los procedimientos existentes para
manipular cadenas de caracteres de uso más frecuente.
FUNCIÓN LEN
Da como resultado el número de caracteres en una variable de caracteres. Su
sintaxis es
nombre_variable = Len(expresión_de_cadena)
Donde expresión_de_cadena es cualquier expresión de caracteres y
nombre_variable es una variable numérica en la que se obtiene el resultado.
En el número de caracteres se contabilizan los caracteres no imprimibles y los
espacios en blanco. Por ejemplo:
Dim LongA As Integer, LongB As lnteger, LongT As [Link]
Dim CadenaA As String, CadenaB As String, CadenaC As
String CadenaA = "Alejandro"
CadenaB = "30/06/83"
CadenaC = ""
LongA = Len(CadenaA)
LongB = Len(CadenaB)
LongT = Len(CadenaA & CadenaB & CadenaC)
Print LongA, LongB, LongT 'escribe: 9 8 17
2
El valor de LongT es 17, puesto que la longitud de CadenaC es 0.
FUNCIÓN LEFT
Da como resultado los n caracteres de la expresión_de_cadena situados más a la
izquierda. Su sintaxis es
Nombre_variable = Left(expresión_de_cadena, n)
Donde expresión_de_cadena es cualquier expresión de caracteres y n es una
expresión numérica.
Si n es mayor que Len(expresión_de_cadena), el resultado es la cadena de caracteres
completa. Si n es igual a 0, el resultado es una cadena de longitud cero. Por ejemplo:
CadenaA = "Programa Visual Basic"
CadenaB = Left(CadenaA, 8)
Print CadenaB 'escribe: Programa
For K = 1 To 9
Print Left(CadenaA, K) ' escribe P Pr
Pro ... Next K
FUNCIÓN RIGHT
Da como resultado los n caracteres de expresión_de_cadena situados más a la
derecha. Su sintaxis es
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
Da como resultado una subcadena de una cadena de caracteres. Su sintaxis es
nombre_variable = Mid(expresión_de_cadena, n [,m])
Donde expresión_de_cadena es cualquier expresión de caracteres y n y m son
expresiones enteras.
3
La función Mid obtiene una subcadena de m caracteres de longitud, empezando por
el n-ésimo carácter, de la expresión_de_cadena. Si se omite m o si hay menos
caracteres que m a la derecha del carácter n-ésimo de expresión_de_cadena, se
obtiene la totalidad de caracteres que hay a la derecha de éste. Si m es igual a 0 o si n
es mayor que Len(expresión_de_cadena), Mid da como resultado una cadena de
longitud cero. Por ejemplo:
CadenaA = "Francisco 25/08/82"
CadenaB = Mid(CadenaA, 14, 2)
Print CadenaB 'escribe: 08
Print Mid(CadenaA, 11) 'escribe: 25/08/82
SENTENCIA MID
Sustituye una subcadena de una cadena de caracteres por otra subcadena de
caracteres. Su sintaxis es
Mid(nombre_variable, n [,m]) = cadena
Donde nombre_variable es una variable de caracteres en la cual se va reemplazar
un número de ellos, n y m son expresiones enteras y cadena es una expresión de
caracteres que reemplaza parte de nombre_variable.
Los caracteres en nombre_variable que comienzan en la posición n son sustituidos
por los caracteres en cadena; m, que es opcional, indica el número de caracteres de
cadena que van a utilizarse en la sustitución. Si m se omite, se utilizan todos los
caracteres de cadena. La longitud de nombre_variable, independientemente de si m
es utilizado o no, no se modifica con el cambio. Por ejemplo:
CadenaA = "15/09/99"
CadenaB = "-"
Mid(CadenaA, 3) = CadenaB
Mid(CadenaA, 6) = CadenaB
Print CadenaA 'escribe: 15-09-99
CadenaA = "abcd"
4
CadenaB = "1234"
Mid(CadenaA, 3) = CadenaB
Print CadenaA 'escribe:
abl2
FUNCIÓN INSTR
Da como resultado la posición del primer carácter de una subcadena en una
cadena. Su sintaxis es
pos = Instr([n,] cadena, cadena_buscada)
Donde n es una expresión numérica (su valor predeterminado es 1 ) y cadena y
cadena_buscada son expresiones de caracteres.
Instr da como resultado la posición del primer carácter de cadena_buscada en
cadena, si cadena_buscada está contenida en cadena; el argumento n especifica la
posición en cadena donde debe empezar la búsqueda. Si cadena_buscada no se
encuentra en cadena, se devuelve como resultado 0. Si cadena_buscada es una
cadena de longitud cero, Instr retorna 1 o n si es que n fue especificado. Por
ejemplo:
CadenaA = "Programa ejemplo"
CadenaB = "gram"
Print InStr(CadenaA, CadenaB), InStr(6, CadenaA, CadenaB)
'La línea anterior escribe: 4 0
FUNCIÓN STRING
Da como resultado una cadena de caracteres igual a uno dado. Su sintaxis es
cadena = String(n, carácter)
Donde n es el número de caracteres de la cadena resultante y carácter es el código
ANSI (valor entre 0 y 255) del carácter que genera la cadena o el primer carácter de
una expresión de cadena. Por ejemplo:
CadenaA = "*": CadenaB = String(12, CadenaA)
5
Print CadenaB; "INFORME ALUMNOS"; CadenaB
Print String(39, "-")
El resultado que se produce, suponiendo que la fuente elegida no es
proporcional, es el siguiente:
************INFORME ALUMNOS************
FUNCIÓN STR
Convierte una expresión numérica en una expresión de caracteres. Su sintaxis es
Nombre_variable = Str(número)
Donde número es cualquier expresión numérica válida y nombre_variable es una
variable de caracteres.
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
Print Str(a) + Str(b) 'escribe: 20
30 Print Str(a - b) 'escribe: -10
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
Da como resultado el valor numérico de una cadena de caracteres. Su sintaxis es
número = Val(expresión_de_cadena)
donde expresión_de_cadena es una expresión de caracteres y número es una variable
numérica.
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
CadenaA = " 123"
CadenaB = " 1000 Pts."
n = Val(CadenaA) 'n = 123
Print n, Val(CadenaB) 'escribe: 123 1000
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.
CadenaA = " 1.230,5"
Print CDbI(CadenaA)
Visual Basic convierte implícitamente cadenas de caracteres a valores numéricos, y
viceversa, siempre que el contenido de la cadena represente un valor numérico.
Por ejemplo:
Dim n As Doub1e
Dim CadenaA As String
CadenaA = 1230.5 + 10 'conversión implícita a
cadena n = CadenaA 'conversión implícita a Double
Print n 'escribe: 1240,5
FUNCIÓN CHR
Da como resultado el carácter ANSI correspondiente al código de carácter
especificado. Su sintaxis es:
7
nombre_variable = Chr(Código_caracter)
donde código_carácter es una expresión numérica de valor 0 a 255 y nombre_variable
es una variable de caracteres.
Chr normalmente se utiliza para enviar caracteres especiales al terminal o a la
impresora. Por ejemplo:
For i = 65 To 90
Print Chr(i); 'escribe: ABC ...
Z Next i
FUNCIÓN ASC
Da como resultado el código de carácter correspondiente al primer carácter de la
cadena de caracteres especificada. Su sintaxis es
código_caracter = Asc(expresión_de_cadena)
donde expresión_decadena puede ser cualquier expresión de caracteres.
Si la expresión_de_cadena es de longitud cero, se devuelve en error. Esta función es
la inversa de Chr. Por ejemplo:
CadenaA = "Test"
Print Asc(CadenaA) 'escribe: 84
84 es el código ANSI del carácter T, que es el primero de la cadena “Test”.
FUNCIÓN SPACE
Da como resultado una cadena de espacios. Su sintaxis es
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
Da como resultado la fecha actual del sistema en una cadena de caracteres. Su
sintaxis es
cadena = Date
donde cadena es una variable que almacenará una expresión de caracteres de
la forma dd/mm/aa, en la que dd es el día, mm es el mes y aa es el año. Por ejemplo:
Dim CadenaA As Strin
CadenaA = Date
Print CadenaA 'escribe, por ejemplo: 27/05/02
SENTENCIA DATE
Establece la fecha actua1 del sistema. Su sintaxis es
Date = fecha
donde fecha es una constante o variable de caracteres dd-mm-aa, dd/mm/aa, dd-
mm-aaaa o dd/mm/aaaa. Por ejemplo:
Date = "27/05/02"
VARIABLE TIME
Da como resultado la hora actual del sistema en una cadena de caracteres. Su
sintaxis es
cadena = Time
donde cadena es una variable que almacenará una expresión de caracteres de
la forma hh:mm:ss , en la que hh especifica la hora, mm los minutos y ss los segundos.
Por ejemplo:
CadenaA = Time
Print CadenaA 'escribe, por ejemplo: [Link]
9
SENTENCIA TIME
Establece la hora actual. Su sintaxis es
Time = hora
donde hora es una constante o variable de caracteres de la forma hh:mm o hh:mm:ss .
Por ejemplo:
Time = "[Link]"
FUNCIÓN LCASE
Convierte una cadena de caracteres a letras minúsculas. Su sintaxis es
cadena = LCase(expresión_de_cadena)
donde expresión_de_cadena es una expresión de caracteres. Por
ejemplo:
CadenaA = "Esto es un EJEMPLO"
Print LCase(CadenaA) 'escribe: esto es un ejemplo
FUNCIÓN UCASE
Convierte una cadena de caracteres a letras mayúsculas. Su sintaxis es
cadena = UCase(expresión_de_cadena)
donde expresión_de_cadena es una expresión de caracteres. Por
ejemplo: CadenaA = "Esto es un EJEMPLO"
Print UCase(CadenaA) 'escribe: ESTO ES UN EJEMPLO
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
ejemplo: CadenaA = " abcd"
Print CadenaA
Print LTrim(CadenaA)
El resultado es:
abcd
abcd
FUNCIÓN RTRIM
Da como resultado un copia de la cadena de caracteres especificada, pero sin
espacios en blanco a la derecha. Su sintaxis es
cadena = RTrim(expresión_de_cadena)
donde expresión_de_cadena es una expresión de caracteres.
FUNCIÓN TRIM
Da como resultado una copia de la cadena de caracteres especificada, pero sin
espacios en blanco a la derecha y a la izquierda. Su sintaxis es
cadena = Trim(expnesión_de_cadena)
donde expresión_de_cadena es una expresión de caracteres.
FUNCIÓN NOW
Devuelve la fecha y la hora actuales de acuerdo a la configuración de la fecha y la
hora del sistema. Su sintaxis es
Now
1
Esta función devuelve un valor de tipo Date que se corresponde con una cadena de
caracte res de la forma
dd/mm/aa HH:MM:SS , donde dd es el día, mm es el mes, aa es el año, HH es la hora,
MM son los minutos y SS son los segundos.
Para visualizar esta fecha y hora según diversos patrones, utilice la función Format
con los símbolos especiales d (día), m (mes), y (año), h (horas), m (minutos) y s
(segundos). Por ejemplo:
Patrón Format(Now, "Patrón ")
d-m-yy 27 – 5 – 01
dd/mm/yy 27/05/01
dd-mmmm -yyyy 25 – mayo – 2001
d-mmm m-yyyy 27 – may 5 – 2001
dddd dd - mmm m – yyyy jueves 27 – may 5 – 2001
h:m:s, d-mmm-yy [Link], 27 – may – 01
hh:mm:ss AM/PM, dd – [Link] PM, 27 – may
mmm - yyyy –
2001
El siguiente ejemplo muestra cómo se utiliza esta función:
Dim fh As String
fh = Now
Print Format(fh, "hh:mm:ss AM/PM, dd-mmm-yyyy")
Desarrollaremos ahora una aplicación en la cual se utilicen algunas de las
funciones anteriormente descriptas. Diseñe un formulario similar al siguiente:
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.
Esta cajas de textos serán habilitadas o deshabilitadas de acuerdo a la función
elegida mediante los botones de opción.
Al pulsar un botón de opción deberá deshabilitar las cajas de texto que se
encuentran habilitadas, y además si el botón de opción pulsado corresponde a
función con argumentos, habilitar los mismos. A continuación se expone el evento de
suceso Clic del botón de opción Len :
Private Sub optLen_Click()
[Link] = False
[Link] = False
[Link] = False
[Link] = False
[Link] = 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 [Link] Then
[Link] = Len([Link])
End If
'Función LCase
If [Link] Then
[Link] = LCase([Link])
End If
'Función UCase
If [Link] Then
[Link] = UCase([Link])
End If
'Función LTrim
If [Link] Then
[Link] = LTrim([Link])
End If
'Función RTrim
If [Link] Then
[Link] = RTrim([Link])
End If
'Función Trim
If [Link] Then
1
[Link] = Trim([Link])
End If
'Función Left
If [Link] Then
If [Link] = "" Then
MsgBox "Debe ingresar la cantidad."
[Link]
Exit
Sub End If
[Link]=Left([Link],[Link])
End If
'Función Right
If [Link] Then
If [Link] = "" Then
MsgBox "Debe ingresar la cantidad."
[Link]
Exit
Sub End If
[Link]=Right([Link],[Link])
End If
'Función Mid
If [Link] Then
If [Link] = "" Then
MsgBox "Debe ingresar el inicio."
[Link]
1
Exit Sub
End If
If [Link] = "" Then
MsgBox "Debe ingresar la cantidad."
[Link]
Exit
Sub End If
[Link]=Mid([Link], _
[Link],[Link])
End If
'Función InStr
If [Link] Then
If [Link] = "" Then
MsgBox "Debe ingresar la cadena buscada."
[Link]
Exit Sub
End If
[Link]=InStr([Link],[Link])
End If
End Sub
PROCEDIMIENTOS PARA EXPRESIONES NUMÉRICAS
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.
Para convertir grados a radianes, multiplicar por p/180 (p = 3.141593).
Dim t As Double, x As Double
'f = factor de conversión de grados a radianes
Const f = 3.141593 / 180
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
FUNCIONES LOGARÍTMICAS Y EXPONENCIAL
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.
La función exponencial es la inversa de la función logarítmica; esto es,
Log(Exp(expresión)) = expresión.
PROCEDIMIENTOS VARIOS
1
FUNCIÓN TIMER
Da como resultado el número de segundos transcurridos desde media noche. Su
sintaxis es
variable = Timer
El siguiente ejemplo muestra cómo se utiliza función:
Dim segundos As Integer
Time = "01:00"
segundos = Timer
Print segundos; "segundos pasan de media noche"
El resultado producido por el ejemplo anterior es:
3600 segundos pasan de media noche
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)]
donde expresión es una expresión numérica de la que depende el número generado.
Esto es, si
expresión < 0 siempre da como resultado el mismo número.
expresión > 0 o se omite da como resultado el siguiente número aleatorio.
expresión = 0 da como resultado el último valor generado.
Si expresión > 0 o se omite, se generará la misma secuencia de números al azar
cada vez que se ejecute el programa que invoca a Rnd. Para variar esta secuencia,
se utilizará la sentencia Randomize que veremos a continuación.
Para producir enteros aleatorios en un intervalo dado se utiliza esta fórmula:
Int((límitesup - límiteinf + 1 ) * Rnd + límiteinf)
Por ejemplo, para generar un conjunto 15 de números comprendidos entre 1 y 49 el
código sería el siguiente:
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
El siguiente ejemplo escribe 5 números entre 0 y 1:
For i = 1 To 5
Print Rnd ; 'escribe 5 números entre 0 y 1
Next i
SENTENCIA RANDOMIZE
Activa el generador de números aleatorios a partir de un número determinado. Su
sintaxis es
Randomize[n]
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.
FUNCIONES PARA MANEJO DE FECHAS
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:
DateAdd(intervalo, número, fecha)
Donde;
Intervalo es requerido y representa una expresión de tipo cadena (String) que
contiene el intervalo de tiempo que se desea agregar.
El argumento intervalo toma los valores siguientes:
Intervalo Descripción
1
yyyy Año
q Trimestre
m Mes
y Día del año
d Día
w Día de la
semana
ww Semana
h Hora
n Minuto
s Segundo
Número es requerido y representa una expresión numérica con el número de
intervalos que se desea agregar. Puede ser positiva (para obtener fechas futuras) o
negativa (para obtener fechas pasadas).
Fecha es requerido y representa el valor de tipo Variant (Date) o literal que
representa la fecha en la que se agregó el intervalo.
Puede utilizar la función DateAdd para agregar o restar un intervalo de tiempo
especificado de una fecha. Por ejemplo, con DateAdd podría calcular una fecha 30
días posteriores al día de hoy o una hora 45 minutos posterior a la actual.
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”).
La función DateAdd no devuelve nunca una fecha no válida. En el ejemplo siguiente
se agrega un mes al 31 de enero:
DateAdd("m", 1, "31-ene-95")
En este caso, DateAdd devuelve 28 -feb-95 y no 31-feb-95. Si fecha es 31 -ene-96,
devolverá 29- feb-96, ya que 1996 es un año bisiesto.
Si la fecha calculada va a resultar inferior al año 100 (esto es, se restan más años
que los que hay en fecha), se produce un error.
2
Si número no es un valor de tipo Long se redondeará al número entero más
cercano antes de ser evaluado.
El formato del valor devuelto por DateAdd es determinado por la configuración
del Panel de control, no por el formato que se pasa en el argumento fecha.
DateDiff
Devuelve un valor de tipo Variant (Long) que especifica el número de intervalos de
tiempo entre dos fechas determinadas. Su sintaxis es la siguiente:
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.
El argumento intervalo toma los valores siguientes:
Intervalo Descripción
yyyy Año
q Trimestre
m Mes
y Día del año
d Día
w Día de la
semana
ww Semana
h Hora
n Minuto
s Segundo
Fecha1 y Fecha2 son requeridos, son de tipo de datos Variant (Date) y
representan las dos fechas que se van a utilizar en el cálculo.
Primerdíasemana es opcional y es una constante que especifica el primer día de la
2
semana. Si no se especifica, se asume que es el domingo.
El argumento primerdíasemana toma los siguientes valores:
Constante Valor Descripción
vbUseSyste 0 Utilice la configuración de la API
m de NLS.
vbSunday 1 Domingo (predeterminado)
vbMonday 2 Lunes
vbTuesday 3 Martes
vbWednesd 4 Miércoles
ay
vbThursday 5 Jueves
vbFriday 6 Viernes
vbSaturday 7 Sábado
El argumento primersemanaaño toma los siguientes valores:
Constante Valor Descripción
vbUseSystem 0 Utilice la configuración de la
API de NLS.
vbFirstJan1 1 Empieza con la semana en la
que se encuentra el 1 de enero
(predeterminado).
vbFirstFourDays 2 Empieza con la primera semana
que tenga al menos cuatro días
en el nuevo año.
vbFirstFullWeek 3 Empieza con la primera semana
que esté completamente
incluida en el nuevo año.
Primerasemanaaño es opcional y es una constante, que especifica la primera semana
2
del año. Si no se especifica, se asume que es aquella en la que se encuentre el 1 de
enero.
Puede utilizar la función DateDiff para determinar el número de intervalos
especificados que existen entre dos fechas. Por ejemplo, con DateDiff podría
calcular el número de días entre dos fechas o el número de semanas entre hoy y el
final del año.
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.
Si fecha1 se refiere a un momento posterior en el tiempo a fecha2, la función DateDiff
devolverá un número negativo.
El argumento primerdíasemana afecta a los cálculos que utilizan “w” y “ww” como
símbolos de intervalo.
Si fecha1 o fecha2 es un literal de fecha, el año, si se especifica, pasará a ser una
parte permanente de la fecha. Sin embargo, si fecha1 o fecha2 está comprendida
entre comillas dobles (“”) y se omite el año, se insertará el año en curso en el
código cada vez que se evalúe la expresión fecha1 o fecha2. Así es posible escribir
código que se pueda usar en años distintos.
Cuando compara el 31 de diciembre con el 1 de enero del año siguiente, DateDiff
para un año (“yyyy”) devolverá 1 aunque sólo haya pasado un día.
DatePart
Devuelve un valor de tipo Variant (Integer) que contiene la parte especificada de la
fecha dada. Su sintaxis es la siguiente:
DatePart(intervalo, fecha[,primerdíasemana[, primerasemanaaño]])
Donde, intervalo es requerido y representa una expresión de tipo cadena con el
intervalo de tiempo que desea devolver.
2
Fecha es requerido y es del tipo de valor Variant (Date) que se desea evaluar.
Primerdíasemana es opcional y representa una constante que especifica el primer
día de la semana. Si no se especifica, se asume que es el domingo.
Primersemanaaño es opcional y representa una constante que especifica la primera
semana del año. Si no se especifica, se asume que es aquella en la que se encuentre
el 1 de enero.
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.
El argumento primerdíasemana afecta a los cálculos que utilizan los símbolos de
intervalo “w” y “ww”.
Si fecha es un literal de fecha, el año que se especifica, pasará a ser una parte
permanente de la fecha. Sin embargo, si fecha está encerrada entre comillas dobles
(“”) y se omite el año, se insertará el año en curso en el código cada vez que se
evalúe la expresión fecha. Así es posible escribir código que se pueda usar en años
distintos.
Función IsNull
Devuelve un valor de tipo Boolean que indica si una expresión contiene o no
datos vá lidos (Null). Su sintaxis es:
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
contiene Null: Dim MiVar, MiComprobacion
MiComprobacion = IsNull(MiVar) ' Devuelve False.
MiVar = Null ' Asigna Null.
MiComprobacion = IsNull(MiVar) ' Devuelve True.
MiVar = Empty ' Asigna Empty.
MiComprobacion = IsNull(MiVar) ' Devuelve False.
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.
IsEmpty devuelve True si la variable no está iniciada o si está establecida,
explícitamente, a Empty. De lo contrario, devuelve False. Siempre se devuelve
False si expresión contiene más de una variable.
El siguiente ejemplo usa la función IsEmpty para determinar si una variable está
iniciada: Dim MiVar, MiComprobacion
MiComprobacion = IsEmpty(MiVar) ' Devuelve True.
2
MiVar = Null ' Asigna Null.
MiComprobacion = IsEmpty(MiVar) ' Devuelve False.
MiVar = Empty ' Asigna Empty.
MiComprobacion = IsEmpty(MiVar) ' Devuelve
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:
Dim MiVar, MiComprobacion
MiVar = 53 ' Asigna un valor.
MiComprobacion = IsNumeric(MiVar) ' Devuelve True.
MiVar = "459.95" ' Asigna un valor.
MiComprobacion = IsNumeric(MiVar) ' Devuelve
True.
MiVar = "45 Help" ' Asigna un valor.
2
MiComprobacion = IsNumeric(MiVar) ' Devuelve False.
Función IsDate
Devuelve un valor de tipo Boolean que indica si una expresión se puede o no
convertir en una fecha. Su sintaxis es:
IsDate(expresión)
El argumento expresión puede ser cualquier expresión de fecha o expresión de
cadena reconocible como fecha u hora.
IsDate devuelve True si la expresión es una fecha o si se puede convertir en una
fecha válida. De lo contrario, devuelve False. En Microsoft Windows, el intervalo
válido de fechas es desde el 1 de enero del año 100 hasta el 31 de diciembre del
año 9999; los intervalos varían según el sistema operativo.
El siguiente ejemplo usa la función IsDate para determinar si una expresión se
puede o no convertir en una fecha:
Dim MiFecha, SuFecha, NingunaFecha, MiComprobacion
MiFecha = "October 19, 1962"
SuFecha =
#10/19/62#
Nin gunaFecha = "Hola"
MiComprobacion = IsDate(MiFecha)' Devuelve True.
MiComprobacion = IsDate(SuFecha) ' Devuelve True.
MiComprobacion = IsDate(NingunaFecha) ' Devuelve False.
CUADROS DE MENSAJES
MsgBox
Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic
en un botón y devuelve un tipo Integer correspondiente al botón elegido por el
usuario. Su sintaxis es la siguiente:
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
El argumento botones tiene estos valores:
Constante Val Descripción
2
or
VbOKOnly 0 Muestra solamente el botón Aceptar.
VbOKCancel 1 Muestra los botones Aceptar y Cancelar.
VbAbortRetryIgnore 2 Muestra los botones Anular, Reintentar e Ignorar.
VbYesNoCancel 3 Muestra los botones Sí, No y Cancelar.
VbYesNo 4 Muestra los botones Sí y No.
VbRetryCancel 5 Muestra los botones Reintentar y Cancelar.
VbCritical 16 Muestra el icono de mensaje crítico.
VbQuestion 32 Muestra el icono de pregunta de advertencia.
VbExclamation 48 Muestra el icono de mensaje de advertencia.
VbInformation 64 Muestra el icono de mensaje de información.
VbDefaultButton1 0 El primer botón es el predeterminado.
VbDefaultButton2 256 El segundo botón es el predeterminado.
VbDefaultButton3 512 El tercer botón es el predeterminado.
VbDefaultButton4 768 El cuarto botón es el predeterminado.
VbApplicationModal 0 Aplicación modal; el usuario debe responder al
cuadro de mensajes antes de poder seguir
trabajando en la aplicación actual.
VbSystemModal 4096 Sistema modal; se suspenden todas las
aplicaciones hasta que el usuario responda al
cuadro de mensajes.
El primer grupo de valores (0 a 5) describe el número y el tipo de los botones
mostrados en el cuadro de diálogo; el segundo grupo (16, 32, 48, 64) describe el
estilo del icono, el tercer grupo (0, 256, 512) determina el botón predeterminado
y el cuarto grupo (0, 4096) determina la modalidad del cuadro de mensajes.
Cuando se suman números para obtener el valor final del argumento botones, se
utiliza solamente un número de cada grupo.
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.
Si el cuadro de diálogo cuenta con un botón Cancelar, presionar la tecla ESC
tendrá el mismo efecto que hacer clic en este botón. Si el cuadro de diálogo
contiene un botón Ayuda, se suministra ayuda inte ractiva para ese cuadro de
diálogo. Sin embargo, no se devuelve valor alguno hasta que se hace clic en uno de
estos botones.
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.
En el siguiente ejemplo se utiliza la función MsgBox para mostrar un mensaje de
error crítico en un cuadro de diálogo con botones Sí y No . El botón No se
considera la respuesta predeterminada. El valor devuelto por la función MsgBox
depende del botón elegido por el usuario. En este ejemplo, se supone que
[Link] es un archivo de Ayuda que contiene un tema con un número de
contexto igual a 1000.
Dim Mensaje, Estilo, Título, Ayuda, Ctxt, Respuesta, MiCadena
Mensaje = "¿Desea continuar?" ' Define el mensaje
Estilo =vbYesNo+vbCritical+vbDefaultButton2 'Define los botones
Título = "Demostración de MsgBox" ' Define el título
Ayuda = "[Link]" ' Define el archivo de ayuda
Ctxt = 1000 ' Define el tema
Respuesta = MsgBox(Mensaje, Estilo, Título, Ayuda, Ctxt)
If Respuesta = vbYes Then ' Si el usuario eligió el botón Sí
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:
InputBox(mensaje, [título][, default][, posx][, posy])
argumentos:
mensaje Requerido. Expresión de cadena que se muestra como 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
utilizados. Si mensaje consta de más de una línea, puede separarlos
utilizando un carácter de retorno de carro (Chr(13)), un carácter de avance
de línea (Chr(10)) o una combinación de los caracteres de retorno de
carro- avance de línea (Chr(13) y Chr(10)) entre cada línea y la siguiente.
título Opcional. Expresión de cadena que se muestra en la barra de título del
cuadro de diálogo. Si omite title, en la barra de título se coloca el nombre
de la aplicación.
default Opcional. Expresión de cadena que se muestra en el cuadro de texto como
respuesta predeterminada cuando no se suministra una cadena. Si omite
default, se muestra el cuadro de texto vacío.
posx Opcional. Expresión numérica que especifica, en twips, la distancia en
sentido horizontal entre el borde izquierdo del cuadro de diálogo y el
borde izquierdo de la pantalla. Si se omite posx, el cuadro de diálogo se
3
centra horizontalmente.
posy Opcional. Expresión numérica que especifica, en twips, la distancia en
sentido vertical entre el borde superior del cuadro de diálogo y el borde
superio r de la pantalla. Si se omite posy, el cuadro de diálogo se coloca a
aproximadamente un tercio de la altura de la pantalla, desde el borde
superior de la misma.
Por ejemplo:
X = InputBox("Dato:") 'x almacena el dato introducido
La cadena de caracteres mensaje contiene el mensaje que indica al usuario el tipo
de información que debe introducir; en el ejemplo, “Dato:”. Si el mensaje consiste
en varias líneas, hay que introducir explícitamente al final de cada una de ellas los
caracteres de retorno de carro y avance de línea (Chr(13) & Chr(10) o la constante
VB equivalente, vbCrLf). Por ejemplo, la sentencia
NomAp = InputBox("Introduzca los apellidos y el nombre." & _
vbCrLf & "Los apellidos en mayúsculas.")
visualiza la caja de dialogo que se presenta en la figura siguiente:
El resto de los parámetros son opcionales. Si queremos omitir un argumento que
precede a otro especificado, hay que poner las correspondientes comas
delimitadoras. Por ejemplo:
x = InputBox("Dato:", , 0)
La cadena de caracteres título será visualizada en la barra de título de la caja de
diálogo; si se omite se pone como título el nombre de la aplicación. La cadena de
caracteres por omisión especifica el texto que aparecerá en la caja de texto; si se
omite, la caja de texto aparecerá vacía. Los argumentos posx y posy son las
3
coordenadas x e y donde aparecerá la caja de diálogo expresadas en twips (1 twip =
1/1440 pulgadas); si se omiten, la caja de diálogo se visualizará centrada;
horizontalmente y a un tercio de la parte superior de la pantalla.
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
[Link] lista_de expresiones
donde objeto, que es opcional, especifica uno de los objetos mencionados
anteriormente, y lista de expresiones es un conjunto de expresiones numéricas y
alfanuméricas separadas por comas, espacios en blanco o puntos y comas. Si se
utiliza como separador un espacio en blanco, Visual Basic lo sustituye
automáticamente por un punto y coma. Las constantes de caracteres (literales)
deben ponerse entre comillas. Cuando objeto se omite, los datos imprimen sobre
el objeto al que pertenece el procedimiento que invoca a Print.
Las siguientes sentencias muestran algunos ejemplos de utilización del
método Print: Print a + 5, a * b / 2, c$, "Fin"
Print x; y + 5;
W Print n; m
Print "LISTADO DE RESULTADOS"
Si se omite la lista de expresiones, se visualiza una línea en blanco. En cambio, si se
incluye la lista de expresiones, se visualizan los valores de las expresiones en el
objeto correspondiente. Por ejemplo:
a = 1000: b = 2000: c - 500
Print "El valor de a es"; a
Print 'línea en blanco
3
Print "El valor de"; b; "+"; c; "="; b + c
El resultado obtiene al ejecutar las sentencias
anteriores es: E1 valor de a es 1000
El valor de 2000 + 500 = 2500
El signo de interrogación (?) puede utilizarse como un modo abreviado de
introducir Print. Por ejemplo:
? a; b
No obstante, cuando el corrector sintáctico comprueba la sintaxis de la sentencia
anterior, sustituye automáticamente el símbolo ? por Print.
El símbolo ? puede también utilizarse para pedir valores o realizar operaciones al
instante en la ventana Inmediato. Por ejemplo, si ejecuta su aplicación paso a paso,
es posible en un instante determinado dirigirse a la ventana Inmediato y realizar
operaciones similares a las siguientes:
?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:
Print " 1 2 3"
Print "12345678901234567890123456789012345"
a=5
Print a; a^2; a * (-5)
Print a, a^2, a * (-5)
Print "FIN DEL PROCESO"
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.
Cuando una coma o punto y coma terminan la lista de expresiones, es decir, se
escriben al final de la línea, el siguiente método Print continuará escribiendo sobre
la misma línea, en caso contrario se efectuará un salto al inicio de la línea
siguiente. Por ejemplo:
a = 50
Print a,
a=a*-
2 Print a
Print
Print "FIN ";
Print "DEL PROCESO"
El resultado que se obtiene al ejecutar las sentencias
anteriores es: 50 -100
FIN DEL PROCESO
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.
VISUALIZAR DATOS SOBRE UN OBJETO
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
Private Sub cmdIngreso_Click()
'. . .
Print "DATOS PERSONALES"
Print
Print "Nombre y Apellido: "; NomAp
Print "Fecha de Nacimiento: ";
FechaNac Print "Nacionalidad: ";
Nacionalidad Print "Dirección: ";
Direccion
Print "Localidad: "; Localidad
End Sub
pertenece al formulario. Esto lo podríamos haber indicado explícitamente así:
Private Sub cmd Ingreso_Click()
'Entrada de datos
NomAp = InputBox("Nombre y Apellido:", , "Nombre y Apellido")
FechaNac = InputBox("Fecha de Nacimiento:", , #1/1/1970#)
Nacionalidad = InputBox("Nacionalidad:", , "Argentino")
Direccion = InputBox("Dirección:", , "Dirección")
Localidad = InputBox("Localidad:", , "Rosario")
'Salida de datos
[Link] "DATOS PERSONALES"
3
[Link]
[Link] "Nombre y Apellido: "; NomAp
[Link] "Fecha de Nacimiento: "; FechaNac
[Link] "Nacionalidad: "; Nacionalidad
[Link] "Dirección: "; Direccion
[Link] "Localidad: "; Localidad
End Sub
Al ejecutar la aplicación el formulario se mostrará como la siguiente figura: