Funciones Intrincecas

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 38

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 I.nteger

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: 18:05:23
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 = "18:05:23"

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 22:24:50, 27 – may – 01
hh:mm:ss AM/PM, dd – 10:24:50 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()

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

If txtCantidadLeft.Text = "" Then

MsgBox "Debe ingresar la cantidad."

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

MsgBox "Debe ingresar la cantidad."

txtCantidadRight.SetFocus

Exit

Sub End If
lblMuestra.Caption=Right(txtTexto.Text,txtCantidadLeft.Text)

End If

'Función Mid
If optMid.Value Then

If txtInicio.Text = "" Then


MsgBox "Debe ingresar el inicio."

txtInicio.SetFocus

1
Exit Sub
End If

If txtCantidadMid.Text = "" Then

MsgBox "Debe ingresar la cantidad."

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

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
DEMO.HLP 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 = "DEMO.HLP" ' 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

Objeto.Print 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

Form1.Print "DATOS PERSONALES"

3
Form1.Print
Form1.Print "Nombre y Apellido: "; NomAp

Form1.Print "Fecha de Nacimiento: "; FechaNac

Form1.Print "Nacionalidad: "; Nacionalidad

Form1.Print "Dirección: "; Direccion

Form1.Print "Localidad: "; Localidad


End Sub

Al ejecutar la aplicación el formulario se mostrará como la siguiente figura:

También podría gustarte