You are on page 1of 119

Abs (Función

)
Devuelve un valor del mismo tipo que el que se pasó como parámetro y que especifica el valor absoluto de un número. Sintaxis Abs(número) El argumento número puede ser cualquier expresión numérica válida. Si número contiene Null, la función devolverá Null; si es una variable no inicializada, devolverá cero. Comentarios El valor absoluto de un número es su magnitud sin signo. Por ejemplo, ABS(-1) y ABS(1) devuelven 1.

Array (Función)
Devuelve una variante que contiene una matriz. Sintaxis Array(lista_argumentos) El argumento lista_argumentos requerido es una lista de valores delimitados por comas que se asignan a los elementos de la matriz contenida en el tipo Variant. Si no se especifica ningún argumento, se crea una matriz de longitud cero. Comentarios La notación usada para hacer referencia a cualquier elemento de una matriz consiste en el nombre de la variable seguido por un paréntesis que contiene un número de índice para el elemento deseado. En el ejemplo siguiente, la primera instrucción crea una variable llamada A de tipo Variant. La segunda instrucción asigna una matriz a la variable A. La última instrucción asigna a otra variable el valor contenido en el segundo elemento de la matriz.
Dim A As Variant A = Array(10,20,30) B = A(2)

El límite inferior de una matriz creada mediante la función Array se determina por el límite inferior especificado con la instrucción Option Base, a menos que Array esté autorizado

con el nombre de la biblioteca tipo (por ejemplo VBA.Array). Si se autoriza con el nombre de la biblioteca tipo, Array no se verá afectado por Option Base. Nota Una variable Variant no declarada como una matriz puede contener, no obstante, una matriz. Una variable Variant puede contener una matriz de cualquier tipo, excepto cadenas de longitud fija y tipos definidos por el usuario. Aunque una variable Variant que contiene una matriz es conceptualmente diferente de una matriz cuyos elementos son de tipo Variant, se tiene acceso a los elementos de la matriz del mismo modo.

Ejemplo de la función Array
En este ejemplo se utiliza la función Array para devolver una Variant que contiene una matriz.
Dim MiSemana, MiDía MiSemana = Array("Lun", "Mar", "Miér", "Jue", "Vie", "Sáb", "Dom") ' Se da por hecho que el límite inferior es igual a 1 ' en los valores devueltos (mediante Opción Base) MiDía = MiSemana(2) ' MiDía contiene "Mar". MiDía = MiSemana(4) ' MiDía contiene "Jue".

Asc (Función)
Devuelve un tipo Integer que representa el código de carácter correspondiente a la primera letra de una cadena. Sintaxis Asc(cadena) El argumento obligatorio cadena es una expresión de cadena válida. Si cadena no contiene caracteres, se produce un error en tiempo de ejecución.

Ejemplo de la función Asc
En este ejemplo se utiliza la función Asc para devolver el código de carácter correspondiente a la primera letra de una cadena de caracteres.
Dim MiNúmero MiNúmero = Asc("A") MiNúmero = Asc("a") MiNúmero = Asc("Apple") ' Devuelve 65. ' Devuelve 97. ' Devuelve 65.

Funciones de conversión de tipos

Cada función convierte una expresión a un tipo de datos específico. Sintaxis CBool(expresión) CByte(expresión) CCur(expresión) CDate(expresión) CDbl(expresión) CDec(expresión) CInt(expresión) CLng(expresión) CSng(expresión) CStr(expresión) CVar(expresión) El argumento obligatorio expresión es cualquier expresión de cadena o expresión numérica. Tipos devueltos El nombre de la función determina el tipo devuelto, como se muestra a continuación: Función CBool CByte CCur CDate CDbl Tipo devuelto Boolean Byte Currency Date Double Intervalo del argumento expresión Cualquier expresión de cadena o numérica válida. 0 a 255. -922.337.203.685.477,5808 a 922.337.203.685.477,5807. Cualquier expresión de fecha. -1.79769313486231E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E-324 a

En general. Para números con 28 decimales.767. Debe utilizar funciones de conversión de tipos en lugar de Val para proporcionar conversiones que reconozcan las variantes internacionales. -2.147. no como el tipo de datos predeterminado.543.483.9228162514264337593543950335. -3. Por ejemplo. el intervalo es +/-7.768 a 32. el código se puede documentar utilizando las funciones de conversión de tipos de datos para indicar que el resultado de alguna de las operaciones se debería expresar como un tipo de datos en particular.648 a 2.162. El mismo intervalo que String para valores no numéricos.79769313486232E308 para valores positivos. 1.0000000000000000000000000001. números sin decimales. es decir. -32. cuando utiliza CCur. Por ejemplo. El mismo intervalo que Double para valores numéricos. .950. las fracciones se redondean.1. se produce un error.514.401298E-45 a 3. diferentes separadores de millares y varias opciones monetarias dependiendo de la configuración regional establecida en su equipo. doble precisión o aritmética entera.483. El valor de retorno de CStr depende del argumento expresión.402823E38 para valores positivos.335 para números basados en cero.147. CInt CLng CSng Integer Long Single CStr String CVar Variant Comentarios Si la expresión del argumento expresión que se pasa a la función está fuera del intervalo del tipo de dato al que se va a convertir.402823E38 a -1.264. La menor posición para un número que no sea cero es 0.337.593.228. las fracciones se redondean. CDec Decimal +/79.401298E-45 para valores negativos. se reconocen diferentes separadores decimales. utilice Ccur para forzar la ejecución de operaciones con aritmética monetaria en los casos en los que se haría con precisión simple.647.

no es necesario CVDate. en lugar de redondear. MiHora. Dim MiFecha. en su lugar. CInt y CLng se diferencian de las funciones Fix y Int en que truncan. Ejemplo de la función CInt En este ejemplo se utiliza la función CInt para convertir un valor a un tipo de datos Integer. Ejemplo de la función CDate En este ejemplo se utiliza la función CDate para convertir una cadena en un tipo de datos Date. no se recomienda utilizar fechas y horas como cadenas de caracteres en el código definitivo de una aplicación (como se muestra en el ejemplo). y 1. la parte fraccionaria de un número. Además. Puesto que ahora hay un tipo de dato intrínseco Date. 0. Se proporciona una función CVDate por compatibilidad con versiones anteriores de Visual Basic. Fix y Int siempre devuelven un valor del mismo tipo del que se le pasa. . Además. sin embargo. MiHoraCorta MiFecha = "12 febrero 1969" ' Define la fecha. siempre devuelve un Variant con los valores convertidos a un subtipo Decimal. MiHoraCorta. MiFechaCorta = CDate(MiFecha)' Convierte al tipo Date. CDate reconoce formatos de fecha que se ajusten a la configuración regional de su sistema. Por ejemplo. La sintaxis de la función CVDate es idéntica a la de la función CDate. En general.5 redondea a 2.5 redondea a 0. CDate reconoce literales de fecha y literales de hora además de números comprendidos dentro del intervalo de fechas aceptables. Nota La función CDec no devuelve un tipo de dato discreto. mes y año si se proporciona en un formato diferente del que reconoce la configuración de fecha.Cuando la parte fraccionaria es exactamente 0. MiHoraCorta = CDate(MiHora) ' Convierte al tipo Date. comenzando a medianoche. Esta técnica es coherente con la conversión de todos los demás tipos intrínsecos a sus equivalentes subtipos Variant. Use en su lugar literales de fecha y literales de hora (como #2/12/1969# y #4:45:23 PM#). Se puede observar el mismo efecto al convertir una expresión a Date y asignarla después a un Variant. Utilice la función IsDate para determinar si se puede convertir date a una fecha o una hora.5. CInt y CLng siempre redondean al número par más cercano. no se puede reconocer un formato de fecha largo si contiene la cadena del día de la semana. Cualquier parte fraccionaria del número se convierte a la hora del día. CVDate devuelve un Variant de subtipo Date en lugar del tipo Date real. la parte numérica entera se convierte a una fecha. MiHora = "4:35:47 PM" ' Define la hora. Es posible que no se determine el orden correcto del día. Al convertir un número a una fecha.

opción-1[. MiVariante = CVar(MiEntero & "000")' MiVariante ' contiene la cadena 4534000. Sintaxis Choose(índice. MiDoble MiMoneda = CCur(234. ' MiEntero contiene 2346. MiCadena MiDoble = 437.Dim MiDoble.5678 MiEntero = CInt(MiDoble) ' MiDoble es un Double.. Dim MiMoneda. Choose (Función) Selecciona y devuelve un valor de una lista de argumentos. MiCadena = CStr(MiDoble) ' MiCadena contiene "437. Ejemplo de la función CStr En este ejemplo se utiliza la función CStr para convertir un valor numérico a un tipo de datos String.2 * 0. Dim MiEntero. MiEntero MiDoble = 2345.324". MiDoble = CDbl(MiMoneda * 8. opción-n]]) La sintaxis de la función Choose consta de las siguientes partes: . opción-2.324 ' MiDoble es un Double. .01) ' Convierte el resultado a un tipo de datos Double. Ejemplo de la función CVar En este ejemplo se utiliza la función CVar para convertir una expresión a un tipo de datos Variant. MiVariante MiEntero = 4534 ' MiEntero es un Integer.456784) ' MiMoneda es Currency.. [. Ejemplo de la función CDbl En este ejemplo se utiliza la función CDbl para convertir una expresión a un tipo de datos Double. Dim MiDoble.

"United". la función Choose devuelve "tres". Ejemplo de la función Choose Este ejemplo utiliza la función Choose para mostrar un nombre como respuesta a un índice transferido al procedimiento en el parámetro Ind.Parte índice opción Descripción Requerido. devolverá la segunda y así sucesivamente. si utiliza la función MsgBox como parte de una expresión en todas las opciones. Comentarios La función Choose devuelve un valor de la lista de opciones dependiendo del valor de índice. Esta funcionalidad es especialmente útil cuando índice representa el valor en un grupo de opción. Por esta razón. si índice es 2. Expresión numérica o campo que da como resultado un valor entre 1 y el número de opciones disponibles. aunque la función Choose sólo vaya a devolver el valor de una de ellas. debe comprobar que no se producirán efectos no deseados. se redondeará al entero más cercano antes de su evaluación. Si índice no es un número entero. La función Choose evalúa todas las opciones de la lista. "Speedy". "Federal") End Function Chr (Función) Devuelve un tipo String que contiene el carácter asociado con el código de carácter especificado. la función Choose devolverá la primera opción de la lista. Function GetChoice(Ind As Integer) GetChoice = Choose(Ind. si índice da como resultado 3 y opción-1 = "uno". Expresión del tipo Variant que contiene una de las opciones posibles. Requerido. Puede utilizar la función Choose para buscar un valor en una lista de posibilidades. Por ejemplo. La función Choose devuelve Null si índice es menor que 1 o mayor que el número de opciones de la lista. . opción-2 = "dos" y opción-3 = "tres". Si índice es 1. Por ejemplo. aparecerá un cuadro de mensaje para cada opción en el momento de evaluarla. aunque sólo devuelva una.

Sintaxis Chr(códigocar) El argumento códigocar es un tipo Long que identifica a un carácter. Sin embargo. es una expresión de cadena que especifica una unidad de disco existente. Por ejemplo. Ejemplo de la función Chr En este ejemplo se utiliza la función Chr para devolver el carácter asociado con el código de carácter especificado. >. %. Si no se especifica la unidad de disco o el argumento unidad es de longitud cero (""). CurDir ignora cualquier unidad especificada y simplemente devuelve la ruta de la unidad actual. El intervalo normal de códigocar es 0–255. en sistemas DBCS. CurDir (Función) Devuelve un tipo Variant (String) que representa la ruta de acceso actual. En Macintosh. El nombre de la unidad predeterminada es "HD" y las porciones del nombre de la ruta se separan por dos . la función CurDir devuelve la ruta de acceso de la unidad de disco actual. Chr(10) devuelve un carácter de avance de línea. En Macintosh. Ejemplo de la función CurDir En este ejemplo se utiliza la función CurDir para obtener la ruta de acceso actual. Sintaxis CurDir[(unidad)] El argumento requerido unidad. el intervalo real de códigocar es de 32768 a 65535. a. Comentarios Los números del 0 al 31 son los mismos que los códigos ASCII estándar no imprimibles. se ignoran las especificaciones de unidad dadas a CurDir. Dim MiCar MiCar = Chr(65) MiCar = Chr(97) MiCar = Chr(62) MiCar = Chr(37) ' ' ' ' Devuelve Devuelve Devuelve Devuelve A.

ChDir (Instrucción) Cambia el directorio o carpeta actual. la instrucción ChDir cambia el directorio o carpeta predeterminado de la unidad actual. se especificarán carpetas de Macintosh en lugar de \Windows. Igualmente. es una expresión de cadena que identifica el directorio o carpeta que va a ser el nuevo directorio o carpeta predeterminado. La siguiente instrucción cambia el directorio ChDir "D:\WINDOWS\SYSTEM" Date (Función) . La ruta puede incluir la unidad de disco. la siguiente instrucción cambia el directorio predeterminado en la unidad D. ' Se supone que la ruta de acceso actual en la unidad D ' es "D:\EXCEL". ChDir "MIDIR" ' Se supone que "C:" es la unidad de disco actual.puntos ":" en lugar de por barras invertidas. ' Se supone que la ruta de acceso actual en la unidad C es "C:\WINDOWS\SYSTEM" (en Microsoft Windows). MiRuta = CurDir("C") ' Se devuelve"C:\WINDOWS\SYSTEM" MiRuta = CurDir("D") ' Se devuelve "D:\EXCEL". Si no se especifica la unidad. ' Se supone que la unidad de disco actual es C. Por ejemplo. Comentarios La instrucción ChDir cambia el directorio predeterminado. pero C continúa siendo la unidad predeterminada: ChDir "D:\TMP" Ejemplo de la instrucción ChDir ' Cambia el directorio o carpeta actual a "MIDIR". pero no la unidad predeterminada. Sintaxis ChDir ruta El argumento requerido ruta. Dim MiRuta MiRuta = CurDir ' Se devuelve "C:\WINDOWS\SYSTEM". si la unidad de disco predeterminada es C.

Sintaxis DateAdd(intervalo.Devuelve un tipo Variant (Date) que contiene la fecha actual del sistema. DateAdd (Función) Devuelve un valor de tipo Variant (Date) con una fecha a la que se ha agregado un intervalo de tiempo especificado. Expresión de cadena que contiene el intervalo de tiempo que se desea agregar. Valor de tipo Variant (Date) o literal que representa la fecha en la que se agregó el intervalo. Requerido. fecha) La sintaxis de la función DateAdd consta de los siguientes argumentos con nombre: Parte intervalo número Descripción Requerido. número. fecha Valores El argumento intervalo tiene los siguientes valores: Valor yyyy q Año Trimestre Descripción . Expresión numérica con el número de intervalos que se desea agregar. Requerido. Sintaxis Date Comentarios Utilice la instrucción Date para establecer la fecha del sistema. Puede ser positiva (para obtener fechas futuras) o negativa (para obtener fechas pasadas).

Si la fecha calculada va a resultar inferior al año 100 (esto es. Si fecha es 31-ene-96. Si desea agregar días a fecha. muestra una fecha que corresponde a un número especificado de meses en el futuro.m y d w ww h n s Mes Día del año Día Día de la semana Semana Hora Minuto Segundo Comentarios Puede utilizar la función DateAdd para agregar o restar un intervalo de tiempo especificado de una fecha. En el ejemplo siguiente se agrega un mes al 31 de enero: DateAdd("m". 1. no por el formato que se pasa en el argumento fecha. La función DateAdd no devuelve nunca una fecha no válida. DateAdd devuelve 28-feb-95 y no 31-feb-95. Día ("d") o Día de la semana ("w"). Ejemplo de la función DateAdd Este ejemplo obtiene una fecha y. Por ejemplo. utilizando la función DateAdd. . se produce un error. Nota El formato del valor devuelto por DateAdd es determinado por la configuración del Panel de control. con DateAdd podría calcular una fecha 30 días posterior al día de hoy o una hora 45 minutos posterior a la actual. puede utilizar Día del año ("y"). se restan más años que los que hay en fecha). "31-ene-95") En este caso. devolverá 29-feb-96. Si número no es un valor de tipo Long se redondeará al número entero más cercano antes de ser evaluado. ya que 1996 es un año bisiesto.

Valores El argumento intervalo toma los valores siguientes: Intervalo yyyy Año Descripción . se asume que es el domingo. Expresión de cadena con el intervalo de tiempo utilizado para calcular la diferencia entre fecha1 y fecha2. primerasemanaaño]]) La sintaxis de la función DateDiff consta de los siguientes argumentos con nombre: Parte Intervalo Fecha1. Constante. Dim TipoIntervalo As String Dim Número As Integer Dim Msj TipoIntervalo = "m" ' "m" especifica meses como intervalo. primerdíasemana[. se asume que es aquélla en la que se encuentre el 1 de enero. PrimeraFecha) MsgBox Msj DateDiff (Función) Devuelve un valor de tipo Variant (Long) que especifica el número de intervalos de tiempo entre dos fechas determinadas. que especifica la primera semana del año.Dim PrimeraFecha As Date ' Declara las variables. Si no se especifica. Requerido. fecha2 Primerdíasemana Primerasemanaaño Descripción Requerido. fecha2[. Número. Opcional. Si no se especifica. Sintaxis DateDiff(intervalo. Las dos fechas que se van a utilizar en el cálculo. fecha1. Constante que especifica el primer día de la semana. Opcional. Variant (Date). PrimeraFecha = InputBox("Escriba una fecha") Número = InputBox("Escriba el número de meses a agregar") Msj = "Nueva fecha: " & DateAdd(TipoIntervalo.

Cuando intervalo es Día de la semana ("w"). DateDiff devuelve el número de semanas entre las dos fechas. Si fecha1 es lunes. la función DateDiff devolverá un número negativo. 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. el año. 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. En la cuenta incluirá fecha2. Sin embargo. En este caso contará el número de domingos entre fecha1 y fecha2. Si fecha1 se refiere a un momento posterior en el tiempo a fecha2. la función DateDiff devolverá el número de semanas entre las dos fechas. Si fecha1 o fecha2 es un literal de fecha. DateDiff contará fecha2 si es domingo. pasará a ser una parte permanente de la fecha. aunque sea domingo. DateDiff para un año ("yyyy") devolverá 1 aunque sólo haya pasado un día. Si desea saber el número de días entre fecha1 y fecha2. Por ejemplo. El argumento primerdíasemana afecta a los cálculos que utilizan "w" y "ww" como símbolos de intervalo. . si fecha1 o fecha2 está comprendida entre comillas dobles ("") y se omite el año. Si intervalo es Semana ("ww"). se insertará el año en curso en el código cada vez que se evalúe la expresión fecha1 o fecha2.q m y d w ww h n s Trimestre Mes Día del año Día Día de la semana Semana Hora Minuto Segundo Comentarios Puede utilizar la función DateDiff para determinar el número de intervalos especificados que existen entre dos fechas. puede utilizar Día del año ("y") o Día ("d"). pero no fecha1. si se especifica. DateDiff contará el número de lunes hasta fecha2. pero no fecha1.

Dim LaFecha As Date ' Declara las variables.primerdíasemana[. Opcional. se asume que es el domingo. Opcional. Now. Sintaxis DatePart(intervalo. Si no se especifica. Valores El argumento intervalo toma los siguientes valores: Valor yyyy Descripción Año . Requerido. Una constante que especifica el primer día de la semana. Una constante que especifica la primera semana del año. fecha[. se asume que es aquélla en la que se encuentre el 1 de enero.Ejemplo de la función DateDiff Este ejemplo utiliza la función DateDiff para mostrar el número de días entre una fecha dada y hoy. Expresión de cadena con el intervalo de tiempo que desea devolver. Si no se especifica. LaFecha) MsgBox Msj DatePart (Función) Devuelve un valor de tipo Variant (Integer) que contiene la parte especificada de la fecha dada. Dim Msj LaFecha = InputBox("Escriba una fecha") Msj = "Días desde hoy: " & DateDiff("d". primerasemanaaño]]) La sintaxis de la función DatePart consta de los siguientes argumentos con nombre: Parte intervalo fecha primerdíasemana primerasemanaaño Descripción Requerido. Tipo de valor Variant (Date) que se desea evaluar.

Domingo (predeterminado) Lunes Martes Miércoles Jueves Viernes Sábado vbWednesday 4 vbThursday vbFriday vbSaturday 5 6 7 Comentarios Puede utilizar la función DatePart para evaluar una fecha y devolver un intervalo de tiempo específico. Por ejemplo. El argumento primerdíasemana afecta a los cálculos que utilizan los símbolos de intervalo "w" y "ww". podría utilizar DatePart para calcular el día de la semana o la hora actual. .q m y d w ww h n s Trimestre Mes Día del año Día Día de la semana Semana Hora Minuto Segundo El argumento primerdíasemana toma los siguientes valores: Constante vbUseSystem vbSunday vbMonday vbTuesday Valor 0 1 2 3 Descripción Utiliza el valor de la API de NLS.

se insertará el año en curso en el código cada vez que se evalúe la expresión fecha. utilizando la función DatePart. Sin embargo. puede especificar fechas relativas para cada argumento. Número entre 100 y 9999. Integer. muestra el trimestre del año que ocurre. el intervalo de números para cada argumento de DateSerial debería estar en el intervalo normalmente aceptado para la unidad. Sin embargo. . es decir. si fecha está encerrada entre comillas dobles ("") y se omite el año. antes o después de cierta fecha. LaFecha) MsgBox Msj DateSerial (Función) Devuelve un tipo Variant (Date) para un año. Sintaxis DateSerial(año. como el 31 de diciembre de 1991. mes. Se requiere. 1–31 para días y 1–12 para meses. Integer. Dim Msj LaFecha = InputBox("Escriba una fecha:") Msj = "Trimestre: " & DatePart("q". Comentarios Para especificar una fecha. Cualquier expresión numérica. Integer. usando cualquier expresión numérica que represente algún número de días. Dim LaFecha As Date ' Declara las variables. día) La sintaxis de la función DateSerial consta de los siguientes argumentos con nombre: Parte año mes día Descripción Se requiere.Si fecha es un literal de fecha. pasará a ser una parte permanente de la fecha. Ejemplo de la función DatePart Este ejemplo obtiene una fecha y. mes y día especificados. Se requiere. Así es posible escribir código que se pueda usar en años distintos. Cualquier expresión numérica. inclusive o una expresión numérica. el año que se especifica. meses o años.

Sintaxis DateValue(fecha) El argumento fecha es normalmente una expresión de cadena que representa una fecha del 1 de enero del año 100. el 31 de mayo de 1980. Los valores predeterminados entre 30 y 99. 12) ' Devuelve una fecha. directamente o mediante expresión. 10 años antes de 1990 (1990 . no se incluye en el intervalo aceptable de fechas. dependiendo de la parte del año donde se aplique.10. MiFecha = DateSerial(1969.1) Bajo Windows 98 y Windows NT 5. Versiones más recientes de Windows interpretan los años de dos dígitos basados en los valores predeterminados descriots anteriormente.768 a 32. los años de dos dígitos para el argumento año se interpretan basados en la configuración de la máquina definida por el usuario.1). 1800). Ejemplo de la función DateSerial En este ejemplo se utiliza la función DateSerial para devolver la fecha correspondiente al año. al 31 de diciembre de 9999. utilice un año de cuatro dígitos. dos meses antes de agosto (8 . Para el resto de los argumentos año se usa un año con los cuatro dígitos (por ejemplo. si especifica 35 días. 1 . DateValue (Función) Devuelve un tipo Variant (Date).10). No obstante.El ejemplo siguiente usa expresiones numéricas en lugar de números de fecha absoluta. Cuando un argumento no esté incluido en el intervalo aceptado normalmente para él. Sin embargo. se interpretan como los años 1930–1999. se produce un error. Para estar seguro de que la función devuelve el valor apropiado. se incrementa hasta la siguiente unidad mayor. mes y día especificados.2. inclusive. DateSerial(1990 .767 o si la fecha especificada por los tres argumentos. 8 . si un solo argumento está fuera de su intervalo -32. 2. Por ejemplo. se interpretan como los años 2000– 2029. Los valores predeterminados son los valores entre 0 y 29. Dim MiFecha ' MiFecha contiene la fecha correspondiente al 12 de ' febrero de 1969. fecha también puede ser . según convenga.2). en otras palabras. se evalúa como un mes y algunos días. Aquí la función DateSerial devuelve una fecha que es el día antes del primer día del mes (1 .

MiFecha = #2/12/69#. en forma completa o abreviada. Si fecha contiene Null. . Comentarios Si fecha es una cadena que incluye solamente números separados por separadores de fecha. además de reconocer 30/12/1991 y 30/12/91. Si se omite la parte de año de fecha. Si el argumento fecha incluye información de hora. por ejemplo. día y año de acuerdo al formato de Fecha abreviado que se haya especificado para el sistema. DateValue también reconoce 30 de diciembre de 1991 y dic 31. Day (Función) Devuelve el valor de tipo Variant (Integer) que especifica un número entero entre 1 y 31. Sin embargo. si fecha incluye información de hora no válida (tal como "89:98"). También puede utilizar literales de fecha para asignar directamente una fecha a una variable Variant o Date . la función devolverá Null. DateValue no la devuelve. que representa el día del mes. Sintaxis Day(fecha) El argumento fecha es cualquier valor de tipo Variant. DateValue usa el año actual de la fecha del sistema de su PC. una hora o una fecha y una hora en ese intervalo. DateValue también reconoce fechas claramente definidas que contengan nombres de mes. Dim MiFecha MiFecha = DateValue("12 de febrero de 1969") ' Devuelve una fecha. 1991. expresión numérica.cualquier expresión que pueda representar una fecha. cadena. o cualquier combinación que pueda representar una fecha. inclusive. Ejemplo de la función DateValue En este ejemplo se utiliza la función DateValue para convertir una cadena de caracteres a fecha. Por ejemplo. DateValue reconoce el orden para mes. ocurrirá un error.

La función DoEvents pasa el control al sistema operativo. MiDía MiFecha = #12 febrero 1969# ' Asigna una fecha. El control no se devuelve hasta que el sistema operativo haya terminado de procesar los eventos en cola y se hayan enviado todas las teclas de la cola SendKeys. la tarea puede continuar completamente independiente de la aplicación y el sistema operativo tiene en cuenta la multitarea y los intervalos de tiempos. como la de Visual Basic Professional edition. de manera imprevista. durante el tiempo en que éste ha cedido el control. Para procesos de ejecución larga. . es mejor dar preferencia al procesador utilizando un Timer o delegando la tarea a un componente EXE de ActiveX. DoEvents es más útil para tareas sencillas como permitir que un usuario cancele un proceso después de que ha comenzado. En último caso. Dim MiFecha. Esto podría causar resultados impredecibles. utilizando la configuración regional del código. En el entorno de desarrollo. para que éste pueda procesar otros eventos. por ejemplo una búsqueda de un archivo. no utilice la función DoEvents si existe la posibilidad de que otras aplicaciones interactúen con el procedimiento. el literal de fecha se presentará en formato abreviado. Sintaxis DoEvents( ) Comentarios La función DoEvents devuelve un tipo Integer que representa el número de formularios abiertos por una versión independiente de Visual Basic. Además. MiDía = Day(MiFecha) ' MiDía contiene 12. asegúrese de que el procedimiento no se ejecute de nuevo desde una parte diferente del código antes de que devuelva la primera llamada. DoEvents devuelve 0 en el resto de las aplicaciones. DoEvents (Función) Cede el control de la ejecución al sistema operativo.Ejemplo de la función Day En este ejemplo se utiliza la función Day para obtener el día del mes de una fecha especificada. Advertencia Siempre que dé preferencia al procesador temporalmente dentro de un procedimiento de evento.

Ejemplo de la función DoEvents En este ejemplo se utiliza la instrucción DoEvents para ceder el control de la ejecución al sistema operativo una vez cada 1000 iteraciones del bucle. Comentarios Las funciones Int y Fix eliminan la fracción de un número y devuelven el valor entero resultante. Int convierte -8.4 en -9 y Fix convierte -8. If I Mod 1000 = 0 Then ' Si el bucle se ejecuta 1000 veces. la función devolverá Null.4 a -8. Int devuelve el primer entero negativo menor o igual a número. Fix (Funciones) Devuelve la parte entera de un número. Sintaxis Int(número) Fix(número) El argumento número es un tipo Double o cualquier expresión numérica válida. sólo cuando la aplicación principal es Visual Basic. mientras que Fix devuelve el primer entero negativo mayor o igual a número. Int. DoEvents devuelve el número de formularios de Visual Basic abiertos. La diferencia entre Int y Fix es que si el número es negativo. ' Crea una variable para mantener el número de ' formularios de Visual Basic cargados y visibles Dim I. OpenForms = DoEvents ' Cede el control al sistema operativo. Por ejemplo. Si número contiene Null. End If Next I ' Incrementa el contador del bucle. La función Fix(número) es equivalente a: Sgn(número) * Int(Abs(número)) . OpenForms For I = 1 To 150000 ' Inicia el bucle.

la función Int devuelve el primer número entero negativo menor o igual que el número.2) MiNúmero = Fix(-99.2) MiNúmero = Int(-99. primerdíadesemana[. ' Devuelve -99. Una constante que especifica la primera semana del año. Cualquier expresión válida. ' Devuelve -99.Ejemplo de las funciones Int y Fix Este ejemplo muestra cómo las funciones Int y Fix devuelven la parte entera de los números. Format (Función) Devuelve un tipo Variant (String) que contiene una expresión formateada de acuerdo a las instrucciones contenidas en una expresión de formato. Dim MiNúmero MiNúmero = Int(99.8) MiNúmero = Int(-99. ' Devuelve 99.2) ' Devuelve 99. Opcional.8) MiNúmero = Fix(99. Una expresión de formato definida por el usuario o con nombre válida. primerdíadeaño]]]) La sintaxis de la función Format consta de las siguientes partes: Parte expresión formato primerdíadesemana primerdíadeaño Descripción Requerido. Valores El argumento primerdíadesemana tiene estos valores: . Opcional. ' Devuelve -100. formato[. ' Devuelve -100. la función Fix devuelve el primer entero negativo mayor o igual que el número. En el caso de que el argumento sea un número negativo. Opcional.8) MiNúmero = Fix(-99. Sintaxis Format(expresión[. Una constante que especifica el primer día de la semana.

Cree sus propios formatos de cadena definidos por el usuario. Utilice formatos de fecha y hora o formatos numéricos. . Domingo (predeterminado) Lunes Martes Miércoles Jueves Viernes Sábado vbWednesday 4 vbThursday vbFriday vbSaturday 5 6 7 El argumento primerdíadeaño tiene estos valores: Constante vbUseSystem vbFirstJan1 vbFirstFourDays vbFirstFullWeek 0 1 2 3 Valor Descripción Utiliza el valor de API NLS.Constante vbUseSystem vbSunday vbMonday vbTuesday Valor 0 1 2 3 Descripción Utiliza el valor de API NLS. Comienza con la primera semana completa del año. Comentarios Para dar formato Números Fechas y horas Números seriales de fecha y hora Cadenas Haga esto Utilice formatos numéricos con nombre predefinidos o cree formatos numéricos definidos por el usuario. Comienza con la semana donde está el 1 de enero (predeterminado). Comienza con la primera semana del año que tenga cuatro días como mínimo. Utilice formatos de fecha/hora con nombre predefinidos o cree formatos de fecha/hora definidos por el usuario.

mmmm. El intervalo de ciertos símbolos cambia cuando el calendario es Hijri. Si la configuración de la propiedad Calendar de Visual Basic es Hijri. mientras que los convertidos utilizando Str conservan el espacio inicial. yyyy) ytienen el mismo significado pero se aplica al calendario Hijri. Sin embargo. la expresión proporcionada debe ser gregoriana.Si intenta dar formato a un número sin especificar formato. debería usar un formato numérico definido por el usuario para asegurarse de que obtiene la apariencia que desa. Si el calendario es gregoriano. dddd. Cuando son presentados por el código en ejecución. AM y PM) muestran la cadena (inglés o árabe) asociada con ese símbolo. Nota Si la configuración de la propiedad Calendar es gregoriano y formato especifica dar formato a la fecha. los cuales pueden diferir de la configuración regional del código. Format proporciona una funcionalidad similar a la de la función Str. de hora (:) y el literal AM/ PM depende de las configuraciones en ese momento. En este ejemplo se asume que es Inglés/Estados Unidos. Símbolo d dd ww mmm 1-30 1-30 1-51 Muestra nombres de mes enteros (los nombres de mes Hijri no tienen abreviaturas). Los símbolos de formato permanecen en inglés. La verdadera salida formateada presentada por el sistema para el separador de fecha (/). se utilizan los formatos abreviados de hora y de fecha de la configuración regional del código. se utilizan los formatos abreviados de fecha y hora de la configuración regional del sistema. Si está dando formato a una cadena numérica no localizada. todos los símbolos de formato de fecha (por ejemplo. el significado de los simbolos de la expresión formato no cambia. Si el calendario es Hijri. Cuando las horas y las fechas se vuelven a listar en el entorno de desarrollo. los números positivos a los que se les ha dado formato de cadena de caracteres mediante Format carecen del espacio inicial reservado para mostrar el signo del valor. . los símbolos que se muestran como texto (por ejemplo. 1-355 100-9666 Intervalo y yyyy Ejemplo de la función Format En este ejemplo se muestran varios usos de la función Format para dar formato a valores utilizando formatos definidos por el usuario y formatos con nombre. la expresión proporcionada debe ser Hijri.

nper. "0. MiCadena = Format(MiFecha. Un tipo Double que indica el tipo de interés por periodo.90". Format("Esto es". MiCadena = Format(MiHora.4. "###0.00%". Sintaxis FV(rate.00%") ' Devuelve "500. ' Si no se suministra el formato. Format(5.00") ' Devuelve "5.459. d mmm aaaa")' Devuelve "Miércoles. Format(5459.1/12 ó 0.40". "hh:mm:ss AMPM") ' Devuelve "05:04:23 PM".##0. si obtiene un crédito para un automóvil a un porcentaje anual (TPA) del 10 por ciento y realiza pagos mensuales. "dddd. ' 27 de Ene de 1993". Format(334. "<") ' Devuelve "hola". .MiHora y MiFecha se presentan en el entorno de desarrollo utilizando configuraciones actuales de fecha corta y hora corta. Por ejemplo. ">") ' Devuelve "ESTO ES".00") ' Devuelve "334. Format("HOLA". ' Formatos MiCadena = MiCadena = MiCadena = MiCadena = MiCadena = definidos por el usuario. FV (Función) Devuelve un tipo Double que indica el valor futuro de una anualidad basándose en pagos periódicos y constantes y un tipo de interés también constante.0083. MiCadena MiHora = #17:04:23# MiFecha = #27 enero 1993# ' Devuelve la hora actual del sistema en el formato largo de hora definido por el sistema. Dim MiHora. "##. "Long Date") MiCadena = Format(MiHora. el tipo por periodo será 0. MiFecha. "h:m:s") ' Devuelve "17:4:23". pmt[.9. MiCadena = Format(Date. "Long Time") ' Devuelve la fecha actual del sistema en el formato largo de fecha definido por el sistema. MiCadena = Format(Time. pv[. type]]) La función FV consta de los siguientes argumentos con nombre: Parte rate Descripción Requerido. devuelve una cadena. MiCadena = Format(23) ' Devuelve "23".

y un número que indica si el pago se realiza el principio o al final del período de pago (TipoPago). Si se omite. APR. Opcional. se asume el valor 0. PERIODINI = 1 ' Momento de los pagos. Tipopago. el número total de pagos (TotPagos). Para todos los argumentos.##0. los pagos contienen un nominal y un interés que no varía a lo largo de la vida de la anualidad. Requerido. pmt pv type Comentarios Una anualidad es una serie de pagos constantes en efectivo realizados a lo largo de un periodo de tiempo. Un tipo Double que indica el pago que hay que realizar cada periodo. Pago. PVal. Un tipo Variant que indica el valor actual (o suma global) que tiene en este momento una serie de pagos para realizar en el futuro. el crédito tendrá un total de 4 * 12 (ó 48) periodos de pago. el pago (Pago). Por ejemplo. el importe del mismo es el valor actual para el prestamista de los pagos mensuales a realizar. Por ejemplo. Opcional.00" ' Define el formato. . se asume el valor 0. Observe que al representar Pago efectivo abonado. Ejemplo de la función FV En este ejemplo se utiliza la función FV para obtener el valor futuro de una inversión. Dim Fmt. Un tipo Variant que indica el momento en que vencen los pagos. Una anualidad puede ser un préstamo (como por ejemplo la hipoteca de un inmueble) o una inversión (como un plan de ahorro mensual). Por ejemplo. Un tipo Integer que indica el número total de periodos de pago de la anualidad. Los argumentos rate y nper deben calcularse utilizando periodos de pago expresados en las mismas unidades. nper también debe calcularse en meses. TotPmts. en el momento de obtener un crédito para comprar un automóvil. Normalmente. dado el tipo de interés acumulado en cada período (APR / 12). el efectivo abonado (como depósitos de ahorro) se representa con números negativos y el recibido (como cheques de dividendos) con números positivos. Fmt = "###.###. si realiza pagos mensuales correspondientes a un crédito para adquirir un automóvil a cuatro años. FVal Const PERIODFIN = 0. Utilice 0 si los pagos vencen al final del periodo o 1 si los pagos vencen al principio del mismo. si rate se calcula en meses.nper Requerido. el valor actual de la inversión (ValAct). es un número negativo. Si se omite.

Pago = InputBox("¿Cuánto piensa ahorrar cada mes?") APR = InputBox("Indique el tipo de interés porcentual anual esperado. truepart.") If APR > 1 Then APR = APR / 100 ' Asegura la forma correcta. Fmt) & ". dependiendo de la evaluación de una expresión. de lo contrario. Por esta razón. aunque sólo vaya a devolver una de ellas. falsepart) La sintaxis de la función IIf cuenta con los siguientes argumentos con nombre: Parte expr truepart falsepart Descripción Requerido. Sintaxis IIf(expr. Function Comprobar (Prueba As Integer) Comprobar = IIf(Prueba > 1000. "Grande". Requerido. devuelve la palabra "Pequeño". -Pago. -PVal." IIf (Función) Devuelve uno de entre dos valores. Requerido. Tipopago) MsgBox "El importe de sus ahorros será " & Format(FVal. se generará un error aunque expr sea True. Comentarios IIf siempre evalúa truepart y falsepart. Valor o expresión devuelta si expr es True. TotPmts = InputBox("¿Durante cuántos meses piensa ahorrar?") Tipopago = MsgBox("Realiza los pagos al final del mes?". vbYesNo) If Tipopago = vbNo Then Tipopago = PERIODINI Else Tipopago = PERIODFIN PVal = InputBox("Cuál es el saldo actual de esta cuenta de ahorro?") FVal = FV(APR / 12. "Pequeño") End Function . Por ejemplo. deberá vigilar que no se produzcan efectos no deseados. si al evaluar falsepart se produce un error de división por cero. Ejemplo de la función IIf Este ejemplo utiliza la función IIf para calcular el parámetro Prueba del procedimiento Comprobar y devuelve la palabra "Grande" si la cantidad es mayor que 1000. TotPmts. Valor o expresión devuelta si expr es False. Expresión que se desea evaluar.

Sintaxis InputBox(prompt[. Expresión de cadena que identifica el archivo de Ayuda que se utilizará para proporcionar ayuda interactiva para el cuadro de diálogo. puede separarlos utilizando un carácter de retorno de carro (Chr(13)). default][. helpfile. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. title default xpos ypos helpfile . Si se especifica helpfile. la distancia en sentido vertical entre el borde superior del cuadro de diálogo y el borde superior de la pantalla. La longitud máxima de prompt es de aproximadamente 1024 caracteres. Opcional. Opcional. Si omite default. Expresión numérica que especifica. Si se omite ypos. en twips. se muestra el cuadro de texto vacío. el cuadro de diálogo se coloca a aproximadamente un tercio de la altura de la pantalla. Si se omite xpos. Expresión de cadena que se muestra en el cuadro de texto como respuesta predeterminada cuando no se suministra una cadena. también deberá especificarse context. Opcional. según el ancho de los caracteres utilizados. el cuadro de diálogo se centra horizontalmente. en la barra de título se coloca el nombre de la aplicación. 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. desde el borde superior de la misma. xpos][. ypos][. title][. context]) La sintaxis de la función InputBox consta de estos argumentos con nombre: Parte prompt Descripción Requerido. en twips. Expresión numérica que especifica. Opcional. Opcional.InputBox (Función) Muestra un mensaje en un cuadro de diálogo. Expresión de cadena que se muestra como mensaje en el cuadro de diálogo. Si omite title. Si prompt consta de más de una línea. la distancia en sentido horizontal entre el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. espera que el usuario escriba un texto o haga clic en un botón y devuelve un tipo String con el contenido del cuadro de texto.

Si se especifica context. por ejemplo. Si se omiten las posiciones x e y. ValorPred. 100. Dim Mensaje. 10) ' Se muestra el diálogo en la posición 100. . Título. ' Muestra el mensaje.HLP".context Opcional. ValorPred) ' Muestra el mensaje. Algunas aplicaciones host. Si el usuario hace clic sobre Cancelar. Título. MiValor = InputBox(Mensaje. Ejemplo de la función InputBox En este ejemplo se muestran distintas maneras de utilizar la función InputBox para indicar al usuario que debe introducir un valor. MiValor Mensaje = " Introduzca un número del 1 a 3" ' Establece el mensaje. el título. ValorPred = "1" ' Establece el valor predeterminado. el diálogo se centra automáticamente según los ejes respectivos. 100) InStr (Función) Devuelve un tipo Variant (Long) que especifica la posición de la primera aparición de una cadena en otra. . Si desea omitir algunos argumentos de posición. se devuelve una cadena de caracteres de longitud cero. Título. La variable MyValue contiene el valor introducido por el usuario. Nota Si desea especificar más que el primer argumento con nombre. . también deberá especificarse helpfile. Comentarios Cuando se especifica tanto helpfile como context. Si el usuario hace clic en Aceptar o presiona Entrar . 100. Expresión numérica que es el número de contexto de Ayuda asignado por el autor al tema de Ayuda correspondiente. Título. y el valor predeterminado. la función devuelve una cadena de caracteres de longitud cero (""). "DEMO. Microsoft Excel. ValorPred. el usuario puede presionar F1 (Windows) o Ayuda (Macintosh) para ver el tema de Ayuda correspondiente a context. también agregar automáticamente un botón Ayuda al cuadro de diálogo. debe utilizar InputBox en una expresión. debe incluir el delimitador de coma correspondiente. el título y el valor predeterminado. MiValor = InputBox(Mensaje. si éste hace clic sobre Aceptar o presiona ENTER. . la función InputBox devuelve lo que haya en el cuadro de texto. MiValor = InputBox(Mensaje. Si el usuario hace clic en Cancelar. Título = "Demostración de InputBox" ' Establece el título.

compare]) La sintaxis de la función InStr tiene estos argumentos: Parte start Descripción Opcional. Requerido. la búsqueda comienza en la posición del primer carácter. se produce un error. Opcional. Si compare es Null. Valores devueltos Si string1 es de longitud cero 0 La función InStr devuelve . Si se omite compare. el valor Option Compare determina el tipo de comparación. Sólo para Microsoft Access. Expresión de cadena buscada. string2[. ocurre un error. Realiza una comparación binaria. Realiza una comparación textual. Realiza una comparación basada en la información en las bases de datos. Requerido. ]string1. Especifica el tipo de comparación de cadena. Especifica un LCID (LocaleID) válido para usar reglas específicas de configuración regional en la comparación. El argumento inicio se requiere si se especifica compare. Si se omite. Si inicio contiene un valor Null. string1 string2 compare Valores Los valores del argumento compare son: Constante vbUseCompareOption vbBinaryCompare vbTextCompare vbDatabaseCompare -1 0 1 2 Valor Descripción Realiza una comparación con los valores de la instrucción Option Compare. Expresión numérica que establece la posición inicial para cada búsqueda.Sintaxis InStr([start. Expresión de cadena en la que se busca.

SearchChar. la función devolverá Null. Sintaxis Int(número) Fix(número) El argumento número es un tipo Double o cualquier expresión numérica válida. "W") ' Devuelve 0. SearchChar. MyPos = Instr(1. SearchString. Comentarios . SearchChar = "P" ' Se busca "P". SearchChar) ' Devuelve 9. Fix (Funciones) Devuelve la parte entera de un número. SearchChar. Devuelve 6. MyPos SearchString ="XXpXXpXXPXXP" ' Cadena en la que se busca. SearchString. SearchString.string1 es Null string2 es de longitud cero string2 es Null string2 no se encontró string2 se encontró dentro de string1 start > string2 Null start Null 0 Posición en la que se halla la coincidencia 0 Ejemplo de la función InStr En este ejemplo se utiliza la función InStr para devolver la posición de la primera ocurrencia de una cadena en otra. 1) ' Una comparación binaria que comienza en la posición 1. Devuelve 9. ' Una comparación textual que comienza en la posición 4. Int. Si número contiene Null. 0) ' La comparación es binaria por configuración predeterminada (si se omite el último argumento). MyPos = Instr(4. MyPos = Instr(1. MyPos = Instr(SearchString. Dim SearchString.

Las funciones Int y Fix eliminan la fracción de un número y devuelven el valor entero resultante. La función Fix(número) es equivalente a: Sgn(número) * Int(Abs(número)) Ejemplo de las funciones Int y Fix Este ejemplo muestra cómo las funciones Int y Fix devuelven la parte entera de los números. ' Devuelve -99.2) MiNúmero = Fix(-99. Int devuelve el primer entero negativo menor o igual a número. Un tipo Double que indica el tipo de interés por periodo.8) MiNúmero = Int(-99. ' Devuelve -100. la función Fix devuelve el primer entero negativo mayor o igual que el número. Int convierte -8.8) MiNúmero = Fix(-99. En el caso de que el argumento sea un número negativo.2) MiNúmero = Int(-99. per. IPmt (Función) Devuelve un tipo Double que indica el pago de intereses durante un periodo determinado de una anualidad basándose en pagos constantes y periódicos y un tipo de interés también constante. fv[.4 a -8. type]]) La función IPmt consta de los siguientes argumentos con nombre: Parte rate Descripción Requerido. nper. ' Devuelve -100. ' Devuelve 99. Por ejemplo.2) ' Devuelve 99. La diferencia entre Int y Fix es que si el número es negativo. pv[.4 en -9 y Fix convierte -8.8) MiNúmero = Fix(99. si obtiene un crédito para un automóvil a . Por ejemplo. Sintaxis IPmt(rate. la función Int devuelve el primer número entero negativo menor o igual que el número. mientras que Fix devuelve el primer entero negativo mayor o igual a número. ' Devuelve -99. Dim MiNúmero MiNúmero = Int(99.

Para todos los argumentos. Por ejemplo. en el momento de obtener un crédito para comprar un automóvil. puesto que tal es su valor después del pago final.000. Por ejemplo. Opcional. Utilice 0 si los pagos vencen al final del periodo o 1 si los pagos vencen al principio del mismo.una tasa porcentual anual (TPA) del 10 por ciento y realiza pagos mensuales. o valor de hoy. si rate se calcula en meses. se asume el valor 0. Por ejemplo. Requerido. nper también debe calcularse en meses. si realiza pagos mensuales correspondientes a un crédito para adquirir un automóvil a cuatro años. Si se omite.000. entre 1 y nper. Requerido.0083. Si se omite. Un tipo Variant que indica el momento en que vencen los pagos. Un tipo Double que indica el periodo de pago. per nper Requerido. el crédito tendrá un total de 4 * 12 (ó 48) periodos de pago. de una serie de pagos o cobros futuros. si desea ahorrar 5. pv fv type Comentarios Una anualidad es una serie de pagos constantes en efectivo realizados a lo largo de un periodo de tiempo. el efectivo abonado (como depósitos de ahorro) se representa con números negativos y el recibido (como cheques de dividendos) con números positivos. Opcional. se asume el valor 0. el valor futuro de un crédito es 0. Un tipo Double que indica el número total de periodos de pago de la anualidad. el tipo por periodo será 0.000.1/12 ó 0. Un tipo Double que indica el valor actual.000 para la educación de su hijo durante 18 años. Un tipo Variant que indica el valor futuro o balance en efectivo que se desea tener una vez realizado el pago final. . Los argumentos rate y nper deben calcularse utilizando periodos de pago expresados en las mismas unidades. Una anualidad puede ser un préstamo (como por ejemplo la hipoteca de un inmueble) o una inversión (como un plan de ahorro mensual). el valor futuro será 5. el importe del mismo es el valor actual para el prestamista de los pagos mensuales a realizar. Por ejemplo. Sin embargo.

" MsgBox Msg ' Muestra el resultado. Fmt) Msg = Msg & "de intereses por este crédito.Ejemplo de la función IPmt En este ejemplo se utiliza la función IPmt para calcular la parte de un pago correspondiente al interés cuando todos los pagos son de igual valor. IntPmt = IPmt(APR / 12. TotPmts. el valor actual o nominal del crédito (ValAct). el valor futuro del crédito (ValFut). Period. APR. FVal = 0 ' Normalmente 0 (crédito). y un número que indica si los pagos vencen al comienzo o al final de cada período de pago (TipoPago). vbYesNo) If Tipopago = vbNo Then Tipopago = PERIODINI Else Tipopago = PERIODFIN For Period = 1 To TotPmts ' Interés total. Tipopago) TotInt = TotInt + IntPmt Next Period Msg = "Pagará un total de " & Format(TotInt. PVal. -PVal. el período de pago para el cual se desea determinar la parte correspondiente al interés (Periodo). guess]) La función IRR consta de los siguientes argumentos con nombre: Parte values() Descripción Requerido.###. FVal. TotPmts = InputBox("Número de pagos mensuales") Tipopago = MsgBox("¿Realiza los pagos al final de cada mes?". TotPmts.00" ' Define el formato. Un tipo Variant que indica un valor que se estima que Guess . Dim FVal. el número total de pagos (TotPagos). Tipopago. Fmt. IRR (Función) Devuelve un tipo Double que indica la tasa interna de retorno de una serie de flujos de efectivo periódicos (pagos y cobros). TotInt. IntPmt. Matriz de tipo Double que indica valores de flujo de efectivo. Sintaxis IRR(values()[. Msg Const PERIODFIN = 0. Se dan el tipo de interés porcentual por período (APR / 12). La matriz debe contener al menos un valor negativo (un pago) y uno positivo (un cobro). PVal = InputBox("¿Cuánto dinero desea solicitar?") APR = InputBox("¿Cuál es la tasa anual porcentual del crédito?") If APR > 1 Then APR = APR / 100 ' Asegura la forma correcta.##0. PERIODINI = 1 ' Momento de los pagos. Fmt = "###. Opcional. Period.

1 (10 por ciento). la función IRR devuelve la tasa interna de retorno para una serie de 5 flujos de efectivo contenidos en la matriz Valor(). IRR se calcula por iteración. Fmt.devolverá IRR.1 ' Guess comienza con el 10%. Asegúrese de indicar los valores de los pagos y cobros siguiendo la secuencia correcta. Los otros 4 flujos son positivos. IRR realiza un cálculo cíclico hasta que el resultado tiene una precisión del 0.00001 por ciento. guess será 0. Si se omite. La función IRR utiliza el orden de los valores de la matriz para interpretar el orden de los pagos y cobros. . Ejemplo de la función IRR En este ejemplo. Msg Static Valores(5) As Double ' Define la matriz. Guess) * 100 ' Calcula la tasa interna. Valores(0) = -70000 ' Costes iniciales del negocio. Guess es la tasa interna de retorno estimada. Guess = . Si después de 20 intentos no puede encontrar un resultado. ' Flujos positivos representando ingresos en cuatro años siguientes." MsgBox Msg ' Muestra la tasa interna de retorno. Msg = "La tasa interna de retorno para estos cinco flujos de efectivo es " Msg = Msg & Format(RetRate. Dim Guess. IRR falla. y representan los 4 años siguientes. Comentarios La tasa interna de retorno es el tipo de interés recibido por una inversión consistente en pagos y cobros que se producen a intervalos periódicos. Fmt = "#0. Valores(1) = 22000 : Valores(2) = 25000 Valores(3) = 28000 : Valores(4) = 31000 RetRate = IRR(Valores(). IsDate (Función) Devuelve un valor de tipo Boolean que indica si una expresión se puede convertir en una fecha. como sería en el caso de una anualidad.00" ' Formato de porcentaje. No es necesario que el flujo de efectivo en cada periodo sea constante. Fmt) & " por ciento.El primer elemento de la matriz es un flujo negativo de efectivo que representa los costes iniciales de un negocio. RetRate. Comenzando con el valor de guess.

el argumento expresión es generalmente un único nombre de variable. MiPrueba = IsDate(SinFecha) ' Devuelve False. hasta el 31 de diciembre de 9999 D. SinFecha. IsEmpty (Función) Devuelve un valor de tipo Boolean que indica si una variable ha sido inicializada. es un tipo de datos Variant que contiene una expresión de fecha o una expresión de cadena reconocible como una fecha o una hora. En Microsoft Windows. en caso contrario. Comentarios La función IsDate devuelve True si la expresión es una fecha o se puede reconocer como una fecha válida. TuFecha. Se devuelve False siempre .Sintaxis IsDate(expresión) El argumento expresión requerido. Sin embargo. MiPrueba = IsDate(TuFecha) ' Devuelve True. devuelve False. el intervalo de fechas válidas va desde el 1 de enero de 100 D. ya que la función IsEmpty se utiliza para determinar si las variables individuales están inicializadas. Ejemplo de la función IsDate En este ejemplo se utiliza la función IsDate para determinar si una expresión puede convertirse en fecha. Comentarios La función IsEmpty devuelve True si la variable no está inicializada o está explicítamente configurada a Empty. MiPrueba MiFecha = "12 febrero 1969": TuFecha = #2/12/69#: SinFecha = "Hola" MiPrueba = IsDate(MiFecha) ' Devuelve True. en cualquier otro caso. Dim MiFecha.de C. los intervalos varían de un sistema operativo a otro.. devuelve False. de C. Sintaxis IsEmpty(expresión) El argumento expresión requerido es un tipo de datos Variant que contiene una expresión de cadena o una expresión numérica.

Sintaxis IsNull(expresión) El argumento expresión requerido. que a veces se suele llamar cadena nula. Ejemplo de la función IsEmpty En este ejemplo se utiliza la función IsEmpty para determinar si se ha inicializado o no una variable. La función IsEmpty solamente devuelve información significativa para datos de tipo Variant. la cual indica que una variable todavía no ha sido inicializada. Tampoco es lo mismo que una cadena de longitud cero (""). Importante Utilice la función IsNull para determinar si una expresión contiene un valor Null. MiVar = Empty ' Asigna Empty. Las expresiones que espera evaluar como True en ciertas circunstancias. MiPrueba = IsEmpty(MiVar) ' Devuelve False. Dim MiVar. Comentarios La función IsNull devuelve True si expresión es Null. IsNull (Función) Devuelve un valor de tipo Boolean que indica si una expresión contiene datos no válidos (Null). MiPrueba MiPrueba = IsEmpty(MiVar) ' Devuelve True. tales como If Var = Null AND If Var <> Null. la presencia de Null en cualquier variable hace que se devuelva True para toda la expresión. MiPrueba = IsEmpty(MiVar) ' Devuelve True. La función Null no es la misma que la función Empty. MiVar = Null ' Asigna Null. El valor Null indica que Variant contiene datos no válidos. . Esto se debe a que cualquier expresión que contiene un Null es por si misma de valor Null y por consiguiente False. son siempre False. en cualquier otro caso. IsNull devuelve False.que expresión contenga más de una variable. es un tipo de datos Variant que contiene una expresión numérica o una expresión de cadena. Si expresión está formada por más de una variable.

MiPrueba MiPrueba = IsNull(MiVar) MiVar = "" MiPrueba = IsNull(MiVar) MiVar = Null MiPrueba = IsNull(MiVar) ' Devuelve False. ' Asigna valor. en otro caso. ' Devuelve True. ' Devuelve False. La función IsNumeric devuelve False si expresión es una expresión de fecha. ' Devuelve True. es un tipo de datos Variant que contiene una expresión numérica o una expresión de tipo cadena. Comentarios La función IsNumeric devuelve True si la expresión completa se reconoce como un número. MiPrueba MiVar = "53" MiPrueba = IsNumeric(MiVar) MiVar = "459. Dim MiVar.Ejemplo de la función IsNull En este ejemplo se utiliza la función IsNull para determinar si una variable contiene Null. devuelve False. ' Devuelve True. . Ejemplo de la función IsNumeric En este ejemplo se utiliza la función IsNumeric para determinar si una variable se puede evaluar como un número. ' Devuelve False. Sintaxis IsNumeric(expresión) El argumento expresión requerido.95" MiPrueba = IsNumeric(MiVar) MiVar = "45 Help" MiPrueba = IsNumeric(MiVar) ' Asigna un valor. IsNumeric (Función) Devuelve un valor de tipo Boolean que indica si una expresión se puede evaluar como un número. ' Asigna valor. Dim MiVar.

LCase (Función)
Devuelve un tipo String que se ha convertido a minúsculas. Sintaxis LCase(cadena) El argumento cadena es cualquier expresión de cadena válida. Si string contiene Null, se devuelve Null. Comentarios Sólo se convierten a minúsculas las letras mayúsculas. Las letras minúsculas o los caracteres que no son letras no sufren cambios.

Ejemplo de la función LCase
En este ejemplo se utiliza la función LCase para devolver la versión en minúsculas de una cadena.
Dim UpperCase, LowerCase Uppercase = "Hola Mundo 1234" Lowercase = Lcase(UpperCase) ' Cadena a convertir. ' Devuelve "hola mundo 1234".

Left (Función)
Devuelve un tipo Variant (String) que contiene un número especificado de caracteres del lado izquierdo de una cadena. Sintaxis Left(string, length) La sintaxis de la función Left tiene estos argumentos con nombre: Parte string Descripción Requerido. Expresión de cadena de la cual se devuelven los caracteres que

están más a la izquierda. Si string contiene Null, se devuelve Null. length Requerido, un tipo Variant (Long). Expresión numérica que indica cuántos caracteres se van a devolver. Si es 0, devuelve una cadena de longitud cero (""). Si es mayor o igual al número de caracteres en string, se devuelve la cadena entera.

Ejemplo de la función Left
En este ejemplo se utiliza la función Left para devolver un número especificado de caracteres del lado izquierdo de una cadena.
Dim UnaCadena, MiCadena UnaCadena = "Hola Mundo" MiCadena = Left(UnaCadena, 1) MiCadena = Left(UnaCadena, 6) MiCadena = Left(UnaCadena, 10) ' Define la cadena. ' Devuelve "H". ' Devuelve "Hola M". ' Devuelve "Hola Mundo".

Len (Función)
Devuelve un tipo Long que contiene el número de caracteres en una cadena o el número de bytes necesarios para almacenar una variable. Sintaxis Len(cadena | nombrevar) La sintaxis de la función Len consta de las siguientes partes: Parte cadena Nombrevar Descripción Cualquier expresión de cadena válida. Si cadena contiene Null, se devuelve Null. Cualquier nombre de variable válido. Si nombrevar contiene Null, se devuelve Null. Si nombrevar es un tipo Variant, Len actúa igual que con un tipo String y siempre devuelve el número de caracteres que contiene.

Ejemplo de la función Len
MiCadena = "Hola a todos" MiLong = Len(MiCadena) ' Inicializa la cadenas. ' Devuelve 12.

LTrim, Rtrim y Trim (Funciones)
Devuelve un tipo Variant (String) que contiene una copia de una cadena determinada sin espacios a la izquierda (LTrim), sin espacios a la derecha (RTrim) o sin espacios ni a la derecha ni a la izquierda (Trim). Sintaxis LTrim(cadena) RTrim(cadena) Trim(cadena) El argumento cadena obligatorio es cualquier expresión de cadena válida. Si cadena contiene Null, se devuelve Null.

Ejemplo de las funciones LTrim, RTrim y Trim
En este ejemplo se utilizan las funciones LTrim and RTrim para eliminar espacios a la derecha y a la izquierda de una variable de cadena de caracteres. El uso de la función Trim logra el mismo resultado.
Dim MiCadena, CadenaCorte MiCadena = " <-Cortar-> " ' Inicializa la cadena. CadenaCorte = LTrim(MiCadena) ' CadenaCorte = "<-Cortar-> ". CadenaCorte = RTrim(MiCadena) ' CadenaCorte = " <-Cortar->". CadenaCorte = LTrim(RTrim(MiCadena)) ' CadenaCorte = "<-Cortar->". ' El uso de la función Trim por sí sola logra el mismo resultado. CadenaCorte = Trim(MiCadena) ' CadenaCorte = "<-Cortar->".

Mid (Función)
Devuelve un tipo Variant (String) que contiene un número especificado de caracteres de una cadena. Sintaxis Mid(string, start[, length])

La diferencia en este ejemplo es que la cadena de entrada es ANSI y la longitud en bytes. PrimeraPalabra. start. 3. vbFromUnicode). Requerido. Posición de carácter en string en la cual comienza la parte que se quiere tomar. 3) ' Devuelve "Mid". un tipo Long. PalabraMedia = Mid(MiCadena. MiNuevaCadena = Mid(MiCadena. PalabraMedia MiCadena = "Demostración función Mid" ' Crea la cadena de texto. Mid devuelve una cadena de longitud cero (""). UltimaPalabra = Mid(MiCadena. 4) . Si se omite o en el texto hay menos de length caracteres (incluyendo el carácter de start). 1. Function MidMbcs(ByVal str as String. length) MidMbcs = StrConv(MidB(StrConv(str. "d". se devuelve Null. Requerido. 3. length). start. Si string contiene Null.La sintaxis de la función Mid tiene estos argumentos con nombre: Parte string start Descripción Requerido. Ejemplo de la función Mid En este ejemplo se utiliza la función Mid para devolver un número especificado de caracteres de una cadena. y "G" son DBCS y "b". length Comentarios Para determinar el número de caracteres en string. 3. "C". vbUnicode) End Function Dim MiCadena MiCadena = "AbCdEfG" ' Donde "A". Este segundo ejemplo utiliza MidB y una función definida por el usuario (MidMbcs) para devolver también caracteres de una cadena. UltimaPalabra. se devuelven todos los caracteres desde la posición de start hasta el final de la cadena. 21. "E". Si start es mayor que el número de caracteres en la string. un tipo Variant (Long). PrimeraPalabra = Mid(MiCadena. Expresión de cadena de la cual se devuelven los caracteres. 12) ' Devuelve "Demostración". 14) ' Devuelve "función Mid". 4) ' Devuelve ""bC" MiNuevaCadena = MidMbcs(MiCadena. Dim MiCadena. Número de caracteres que se van a devolver. utilice la función Len. ' y "f" son SBCS. 4) ' Devuelve ""CdEf" MiNuevaCadena = MidB(MiCadena.

Month (Función) Devuelve un valor de tipo Variant (Integer) que especifica un número entero entre 1 y 12. Dim MiTiempo. Si hora contiene Null. Sintaxis Month(fecha) El argumento fecha es cualquier valor de tipo Variant. Sintaxis Minute(hora) El argumento hora es cualquier valor de tipo Variant. MiMinuto = Minute(MiTiempo) ' MiMinuto contiene 35. inclusive. que representa el mes del año. MiMinuto MiTiempo = #4:35:17 PM# ' Asigna una hora. Si fecha contiene Null. una expresión numérica. En el entorno de desarrollo.' Devuelve "bCd" Minute (Función) Devuelve un valor de tipo Variant (Integer) que especifica un número entero entre 0 y 59. utilizando la configuración regional del código. que pueda representar una fecha. una expresión numérica. la función devolverá Null. el literal de hora se presentará en formato abreviado. inclusive. que representa el minuto de la hora. Ejemplo de la función Minute En este ejemplo se utiliza la función Minute para obtener los minutos de una hora especificada. expresión de cadena o cualquier combinación que pueda representar una hora. expresión de cadena o cualquier combinación. . la función devolverá Null.

febrero es 2. se presentará en formato abreviado. abreviar]) La sintaxis de la función MonthName consta de las siguientes partes: Parte mes abreviar Descripción Requerido. utilizando la configuración regional del código. Por ejemplo. la hora(literal de fecha).‘Mes=Diciembre (si hoy es navidad) ‗Mes=Julio Mes=MonthName(Month(Now)) Mes=MonthName(Month(#7/28/2004#)) MsgBox (Función) Muestra un mensaje en un cuadro de diálogo. que significa que el nombre del mes no se abrevia. . MonthName (Función) Descripción Devuelve una cadena que indica el mes especificado.Ejemplo de la función Month En este ejemplo se utiliza la función Month para obtener el mes de una fecha especificada. MiMes = Month(MiFecha) ' MiMes contiene 2. Opcional. En el entorno de desarrollo. El valor Boolean que indica si se va a abreviar el nombre del mes. espera a que el usuario haga clic en un botón y devuelve un tipo Integer correspondiente al botón elegido por el usuario. enero es 1. MiMes MiFecha = #12 febrero 1969# ' Asigna una fecha. etcétera. . Si se omite. La designación numérica del mes. Dim MiFecha. el valor predeterminado es False. Sintaxis MonthName(mes [.

Muestra los botones Anular. Opcional. Si prompt consta de más de una línea. Reintentar e Ignorar. también se debe especificar context. 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. title][.Sintaxis MsgBox(prompt[. según el ancho de los caracteres utilizados. el valor predeterminado para buttons es 0. Si se omite este argumento. helpfile. Expresión de cadena que identifica el archivo de Ayuda que se utiliza para proporcionar ayuda interactiva en el cuadro de diálogo. en la barra de título se coloca el nombre de la aplicación. Opcional. el estilo de icono que se va a utilizar. La longitud máxima de prompt es de aproximadamente 1024 caracteres. Opcional. Opcional. buttons title helpfile context Valores El argumento buttons tiene estos valores: Constante VbOKOnly VbOKCancel VbAbortRetryIgnore 0 1 2 Valor Descripción Muestra solamente el botón Aceptar. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Muestra los botones Aceptar y Cancelar. puede separarlos utilizando un carácter de retorno de carro (Chr(13)) o un carácter de avance de línea (Chr(10)). Si se omite title. la identidad del botón predeterminado y la modalidad del cuadro de mensajes. Expresión de cadena que representa el prompt en el cuadro de diálogo. buttons][. también se debe especificar helpfile. Si se especifica context. Si se especifica helpfile. Expresión numérica que es igual al número de contexto de Ayuda asignado por el autor al tema de Ayuda correspondiente. context]) La sintaxis de la función MsgBox consta de estos argumentos con nombre: Parte prompt Descripción Requerido. . 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.

Muestra el icono de pregunta de advertencia. el tercer grupo (0. Nota Estas constantes las especifica Visual Basic for Applications. 4096) determina la modalidad del cuadro de mensajes. el nombre de las mismas puede utilizarse en cualquier lugar del código en vez de sus valores reales. 32. Por tanto. Especifica la ventana del cuadro de mensaje como la ventana de primer plano. Muestra los botones Sí y No. Sistema modal. Muestra el icono de mensaje crítico. Muestra el icono de mensaje de información. El segundo botón es el predeterminado. El texto se alínea a la derecha. No y Cancelar. 512) determina el botón predeterminado y el cuarto grupo (0. El cuarto botón es el predeterminado. VbSystemModal 4096 VbMsgBoxHelpButton VbMsgBoxSetForeground VbMsgBoxRight VbMsgBoxRtlReading 16384 65536 524288 1048576 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 primer botón es el predeterminado. Cuando se suman números para obtener el valor final del argumento buttons. Aplicación modal. el usuario debe responder al cuadro de mensajes antes de poder seguir trabajando en la aplicación actual. se suspenden todas las aplicaciones hasta que el usuario responda al cuadro de mensajes. El tercer botón es el predeterminado. .VbYesNoCancel VbYesNo VbRetryCancel VbCritical VbQuestion VbExclamation VbInformation VbDefaultButton1 VbDefaultButton2 VbDefaultButton3 VbDefaultButton4 VbApplicationModal 3 4 5 16 32 48 64 0 256 512 768 0 Muestra los botones Sí. Especifica que el texto debe aparecer para ser leído de derecha a izquierda en sistemas hebreo y árabe. Agrega el botón Ayuda al cuadro de mensaje. 256. se utiliza solamente un número de cada grupo. Muestra los botones Reintentar y Cancelar. el segundo grupo (16. 64) describe el estilo del icono. 48. Muestra el icono de mensaje de advertencia.

Valores devueltos Constante vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo 1 2 3 4 5 6 7 Valor Descripción Aceptar Cancelar Anular Reintentar Ignorar Sí No Comentarios Cuando se proporcionan tanto helpfile como context. Ctxt. Si el cuadro de diálogo contiene un botón Ayuda. El valor devuelto por la función MsgBox depende del botón elegido por el usuario. Ayuda. debe utilizar MsgBox en una expresión. Sin embargo. Estilo. El botón No se considera la respuesta predeterminada. Dim Mensaje. Nota Si desea especificar más que el primer argumento con nombre. por ejemplo Microsoft Excel. Ayuda = "DEMO. Estilo = vbYesNo + vbCritical + vbDefaultButton2 ' Define los botones. se suministra ayuda interactiva para ese cuadro de diálogo. no se devuelve valor alguno hasta que se hace clic en uno de estos botones. debe incluir el delimitador de coma correspondiente. Si el cuadro de diálogo cuenta con un botón Cancelar. Si desea omitir algún argumento de posición. se supone que DEMO. Respuesta.HLP" ' Define el archivo de ayuda. el usuario puede presionar F1 (Windows) o Ayuda (Macintosh) para ver el tema de Ayuda correspondiente al context. En este ejemplo. Ejemplo de la función MsgBox En este 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. Título = "Demostración de MsgBox" ' Define el título.HLP es un archivo de Ayuda que contiene un tema con un número de contexto igual a 1000. Algunas aplicaciones host. Título. Ctxt = 1000 ' Define el tema . también agregan automáticamente un botón Ayuda al cuadro de diálogo. MiCadena Mensaje = "¿Desea continuar?" ' Define el mensaje. presionar la tecla ESC tendrá el mismo efecto que hacer clic en este botón.

Ctxt) If Respuesta = vbYes Then ' El usuario eligió el botón Sí. Ayuda. Else ' El usuario eligió el botón No. Estilo. Valores El argumento color toma los siguientes valores: Número 0 1 Negro Azul Color Número 8 9 Gris Azul claro Color . MiCadena = "Sí" ' Ejecuta una acción. MiCadena = "No" ' Ejecuta una acción. Sintaxis Now QBColor (Función) Devuelve un tipo Long que representa el código de color RGB correspondiente al número de color especificado. Sintaxis QBColor(color) El argumento color es un número entero entre 0-15. Respuesta = MsgBox(Mensaje.' el contexto ' Muestra el mensaje. End If Now (Función) Devuelve un valor de tipo Variant (Date) que especifica la fecha y hora actuales de acuerdo con la configuración de la fecha y la hora del sistema de su equipo. Título.

MiFormulario As Form) MiFormulario. el valor devuelto especifica los valores de rojo. Sub CambiarColorFondo (CódigoColor As Integer. verde y azul necesarios para establecer el color correspondiente en el sistema RGB que utiliza Visual Basic para Aplicaciones. reemplazarCon [. inicio[. encontrar. Sintaxis Replace(expresión. Ejemplo de la función QBColor Este ejemplo utiliza la función QBColor para cambiar la propiedad BackColor del formulario transferido como MiFormulario al color indicado por CódigoColor. QBColor acepta valores enteros entre 0 y 15. contar[. comparar]]]) La sintaxis de la función Replace consta de los siguientes argumentos con nombre: .2 3 4 5 6 7 Verde Aguamarina Rojo Fucsia Amarillo Blanco 10 11 12 13 14 15 Verde claro Aguamarina claro Rojo claro Fucsia claro Amarillo claro Blanco brillante Comentarios El argumento color representa los valores de color que utilizan otras versiones de Basic (como Microsoft Visual Basic para MS-DOS y Basic Compiler). Comenzando por el byte menos significativo.BackColor = QBColor(CódigoColor) End Sub Replace (Función) Descripción Devuelve una cadena en la que se reemplazó una subcadena especificada con otra subcadena un número especificado de veces.

se devuelve la cadena completa. El valor númerico que indica la clase de comparación que se realizará cuando se evalúen las subcadenas. lenght) La sintaxis de la función Right tiene estos argumentos con nombre: Parte string lenght Descripción Requerido. Si es mayor o igual al número de caracteres en string.Parte expresión encontrar reemplazarCon inicio Descripción Requerido. Opcional. que significa que se hagan todas las sustituciones posibles. Si se omite. La posición dentro de la expresión donde se empezará a buscar la subcadena. Opcional. Sintaxis Right(string. Requerido. contar comparar Right (Función) Devuelve un tipo Variant (String) que contiene un número especificado de caracteres del lado derecho de una cadena. Opcional. . El número de sustituciones de subcadenas que se realizarán. Requerido. se supone que es 1. Requerido. Si string contiene Null. Expresión numérica que indica cuántos caracteres se van a devolver. Si se omite. Una expresión de cadena que contiene la subcadena que reemplazar. Expresión de cadena desde la cual se devuelven los caracteres que están más a la derecha. se devuelve una cadena de longitud cero (""). se devuelve Null. La subcadena que se busca. La subcadena de sustitución. Si es 0. Vea la sección Valores para consultar los valores posibles. el valor predeterminado es –1. un tipo Variant (Long).

utilizando número como valor de semilla. Ejemplo de la función Right En este ejemplo se utiliza la función Right para devolver un número especificado de caracteres de la parte derecha de la cadena. Rnd (Función) Devuelve un tipo Single que contiene un número aleatorio. Comentarios La función Rnd devuelve un valor menor que 1 pero mayor o igual que cero. Dim UnaCadena. MiCadena = Right(UnaCadena. El número generado más recientemente. utilice la función Len. Valores devueltos Si número es Menor que cero Mayor que cero Igual a cero No se especifica Rnd genera El mismo número todas las veces. El valor de número determina cómo la función Rnd genera un número aleatorio: . 1) ' Devuelve "o". MiCadena = Right(UnaCadena. MiCadena = Right(UnaCadena. El siguiente número aleatorio de la secuencia. Sintaxis Rnd[(número)] El argumento opcional número es un tipo Single o cualquier expresión numérica válida. 6) ' Devuelve "Mundo". MiCadena UnaCadena = "Hola Mundo" ' Define una cadena. El siguiente número aleatorio de la secuencia.Comentarios Para determinar el número de caracteres en string. 20) ' ' Devuelve "Hola Mundo".

númLugaresDecimales]) La sintaxis de la función Round consta de las siguientes partes: Parte expresión Descripción Requirido. Sintaxis Round(expresión [. llame a la función Rnd con un argumento negativo antes de utilizar la función Randomize con un argumento numérico. Ejemplo de la función Rnd En este ejemplo se utiliza la función Rnd para generar un valor entero aleatorio de 1 a 6. Round (Función) Descripción Devuelve un número redondeado en el número especificado de lugares decimales. . Para producir enteros aleatorios en un intervalo dado. Nota Para repetir secuencias de números aleatorios.límite_inferior + 1) * Rnd + límite_inferior) Aquí. use esta fórmula: Int((Límite_superior . límite_superior es el número mayor del intervalo y límite_inferior es el número menor del intervalo. La expresión numérica que se redondea. Al utilizar la instrucción Randomize con el mismo valor de número no se repite la secuencia anterior. Antes de llamar a la función Rnd. Dim MiValor MiValor = Int((6 * Rnd) + 1) ' Genera un valor aleatorio entre 1 y 6. Esto es debido a que cada llamada sucesiva a la función Rnd usará el número anterior como valor de semilla para el siguiente número de la secuencia. utilice la instrucción Randomize sin argumento para inicializar el generador de números aleatorios con un valor de semilla basado en el reloj del sistema.Para cualquier valor de semilla inicial se genera la misma secuencia de números.

el literal de hora se presentará en formato abreviado. que pueda representar una hora. Sgn (Función) Devuelve un tipo Variant (Integer) que indica el signo de un número. la función Round devuelve enteros. utilizando la configuración regional del código. expresión de cadena o cualquier combinación. MiSegundo = Second(MiTiempo) ' MiSegundo contiene 17. MiSegundo MiTiempo = #4:35:17 PM# ' Asigna una hora. Dim MiTiempo. Si se omite. Sintaxis Second(hora) El argumento hora es cualquier valor de tipo Variant. Si hora contiene Null. la función devolverá Null. Second (Función) Devuelve un valor de tipo Variant (Integer) que especifica un número entero entre 0 y 59. En el entorno de desarrollo. que representa un segundo. Un número que indica cuántos lugares a la derecha del decimal se incluyen en el redondeo. Ejemplo de la función Second En este ejemplo se utiliza la función Second para obtener los segundos del minuto de una hora especificada. Valores devueltos . inclusive.númLugaresDecimales Opcional. una expresión numérica. Sintaxis Sgn(número) El argumento número puede ser cualquier expresión numérica válida.

en caso contrario devuelve cero. Variant (String). puede utilizar la función MacID para especificar la firma de una aplicación en lugar de su nombre. MiSigno = Sgn(MiVar2) ' Devuelve -1. MiVar3. el programa se inicia minimizado con enfoque. windowstyle sólo determina si la aplicación recibe . MiSigno MiVar1 = 12: MiVar2 = -2.0 o posterior). puede incluir directorio o carpeta y unidad de disco. Dim MiVar1. Variant (Integer) correspondiente al estilo de la ventana en la cual se va a ejecutar el programa. En Macintosh. Sintaxis Shell(pathname[.Si número es Mayor que cero 1 Igual a cero 0 Sgn devuelve Menor que cero -1 Ejemplo de la función Sgn En este ejemplo se utiliza la función Sgn para determinar el signo de un número. El siguiente ejemplo utiliza la firma de Microsoft Word: Shell MacID("MSWD") windowstyle Opcional. Nombre del programa a ejecutar y de cualesquiera argumentos necesarios o modificador de la línea de comandos. Si se omite windowstyle. Shell (Función) Ejecuta un programa ejecutable y devuelve un tipo Variant (Double) que representa la identificación de la tarea del programa si se ha ejecutado con éxito. MiSigno = Sgn(MiVar3) ' Devuelve 0.windowstyle]) La sintaxis de la función Shell tiene estos argumentos con nombre: Parte pathname Descripción Requerido. En Macintosh (sistema 7.4: MiVar3 = 0 MiSigno = Sgn(MiVar1) ' Devuelve 1. MiVar2.

En Macintosh. sin embargo. La constante vbHide no se aplica a plataformas Macintosh. vbMinimizeFocus la colocan en segundo plano. Nota De manera predeterminada. el nombre de unidad predeterminado es "Disco duro" y las partes de . Windows se muestra como un icono. Ejemplo de la función Shell En este ejemplo se utiliza la función Shell para ejecutar una aplicación especificada por el usuario. vbNoFocus. Windows se muestra como un icono con foco.el enfoque cuando se ejecuta. El argumento con nombre windowstyle tiene estos valores: Constante vbHide 0 Valor Descripción Se oculta Windows y se pasa el foco a la ventana oculta. Esto quiere decir que no se puede esperar que un programa iniciado con Shell termine su ejecución antes de que se ejecuten las instrucciones que siguen a la función Shell en la aplicación. Windows se maximiza con foco. devuelve la identificación de la tarea (Id) del programa iniciado. Windows recupera el foco y vuelve a su posición y tamaño original. ocurrirá un error. vbMinimizedFocus y vbMaximizedFocus colocan la aplicación en primer plano. la función Shell ejecuta otros programas de forma asíncrona. La ventana activa actual permanece activa. vbHide. vbNormalFocus. La ventana activa actual permanece activa. En Macintosh. La Id de la tarea es un número exclusivo que identifica el programa en ejecución. Si la función Shell no puede iniciar el programa nombrado. vbNormalFocus vbMinimizedFocus vbMaximizedFocus vbNormalNoFocus 1 2 3 4 vbMinimizedNoFocus 6 Comentarios Si la función Shell ejecuta con éxito el archivo nombrado. Windows vuelve al tamaño y posición más recientes.

Comentarios La función Space es útil para dar formato a la salida y para borrar datos en cadenas de longitud fija.EXE". 1) ' Ejecuta Calculadora. Ejemplo de la función Space En este ejemplo se utiliza la función Space para devolver una cadena que consta de un número especificado de espacios. Del mismo modo. MiCadena = Space(10) ' Inserta 10 espacios entre 2 cadenas. Dim MiCadena ' Devuelve una cadena con 10 espacios.la ruta de acceso se separan por dos puntos en vez de por barras diagonales inversas. Space (Función) Devuelve un tipo Variant (String) que consiste en un número especificado de espacios. se pueden especificar las carpetas de Macintosh en vez de \Windows. Sintaxis Space(número) El argumento número es el número de espacios que se desea incluir en la cadena. la aplicación se ' ejecuta normalmente y recibe el enfoque. Sintaxis . MiCadena = "Hola" & Space(10) & "Mundo" Sqr (Función) Devuelve un tipo Double que especifica la raíz cuadrada de un número. ' Si se especifica 1 como el segundo argumento. Dim RetVal RetVal = Shell("C:\WINDOWS\CALC.

la función Format no incluye un espacio a la izquierda para el signo del número. ' Genera un error en tiempo de ejecución. Sintaxis Str(número) El argumento número necesario es un tipo Long que contiene una expresión numérica válida. Cuando exista la posibilidad de que se pueda utilizar un separador decimal diferente (por ejemplo. en aplicaciones internacionales). Nota La función Str sólo reconoce el punto (. siempre se reserva un espacio a la izquierda para el signo del número. Si número es positivo. se debe utilizar CStr para convertir un número a una cadena. . A diferencia de Str. hora.Sqr(número) El número argumento es un tipo Double o cualquier expresión numérica válida mayor o igual a cero. Str (Función) Devuelve en un tipo Variant (String) la representación de cadena de un número. ' Devuelve 0.79583152331272. moneda o en otros formatos definidos por el usuario. Ejemplo de la función Sqr En este ejemplo se utiliza la función Sqr para calcular la raíz cuadrada de un número.) como separador decimal válido. la cadena devuelta contiene un espacio a la izquierda y el signo más se da por supuesto. Dim MiRaíz MiRaíz = Sqr(4) MiRaíz = Sqr(23) MiRaíz = Sqr(0) MiRaíz = Sqr(-4) ' Devuelve 2. Comentarios Cuando los números se convierten a cadenas. Utilice la función Format para convertir valores numéricos en valores con formato de fecha. ' Devuelve 4.

Opcional. Especifica el tipo de comparación de cadena.Ejemplo de la función Str En este ejemplo se utiliza Str para devolver una representación de cadena de un número. Requerido. StrComp (Función) Devuelve un tipo Variant (Integer) que indica el resultado de una comparación de cadena. string2[. compare]) La sintaxis de la función StrComp tiene estos argumentos con nombre: Parte string1 string2 compare Descripción Requerido.001) ' Devuelve " 459". Cualquier expresión de cadena válida. Realiza una comparación binaria. Cuando un número se convierte en una cadena siempre se reserva un espacio a la izquierda para el signo. .65) MiCadena = Str(459.001". ' Devuelve "-459. Sintaxis StrComp(string1. Cualquier expresión de cadena válida. Dim MiCadena MiCadena = Str(459) MiCadena = Str(-459. Valores Los valores de la instrucción compare son los siguientes: Constante vbUseCompareOption vbBinaryCompare -1 0 Valor Descripción Realiza una comparación con los valores de la instrucción Option Compare. Si el argumento compare es nulo el valor de Option Compare determina el tipo de comparación.65". ' Devuelve " 459.

se realiza una comparación binaria. MiComp = StrComp(MiCadena2.vbTextCompare vbDatabaseCompare 1 2 Realiza una comparación textual. se realiza una comparación que no diferencia mayúsculas de minúsculas. Sólo para Microsoft Access. MiCadena2. MiComp = StrComp(MiCadena1. MiCadena1) ' Devuelve 1. 1)' Devuelve 0. Sintaxis . MiCadena2. StrReverse (Función) Descripción Devuelve una cadena en la que se invierte el orden de carácter de una cadena especificada. MiComp = StrComp(MiCadena1. Dim MiCadena1. mientras que si el tercer argumento es 0 o se omite. 0)' Devuelve -1. MiCadena2. Si se suministra 1 como tercer argumento. Realiza una comparación basada en la información en las bases de datos. Valores devueltos La función StrComp devuelve los siguientes valores: Si La función StrComp devuelve string1 es menor que string2 -1 string1 es igual a string2 0 string1 es mayor que string2 1 string1 o string2 es Null Null Ejemplo de la función StrComp En este ejemplo se utiliza la función StrComp para devolver los resultados de una comparación de cadenas. MiComp MiCadena1 = "ABCD": MiCadena2 = "abcd" ' Define las variables.

Comentarios Si se especifica para character un número mayor que 255. un tipo Long.StrReverse(cadena1) El argumento cadena1 es la cadena cuyos caracteres se invierten. Requerido. character) La sintaxis de la función String tiene estos argumentos con nombre: Parte number character Descripción Requerido. Ejemplo: CC=strreverse(―UNOS‖) devuelve ―SONU‖ String (Función) Devuelve un tipo Variant (String) que contiene una cadena de caracteres que se repite de la longitud especificada. Si es Null. Si character contiene Null. String convierte el número en un código de carácter válido utilizando la fórmula: character Mod 256 Ejemplo de la función String En este ejemplo se utiliza la función String para devolver cadenas de caracteres de una longitud especificada. Si cadena1 es una cadena de longitud cero (""). se devuelve Null. . se produce un error. Si número contiene Null. se devuelve una cadena de longitud cero. Sintaxis String(number. Código de carácter que especifica el carácter o la expresión de cadena cuyo primer carácter se utiliza para construir la cadena devuelta. Longitud de la cadena devuelta. que se repiten. un tipo Variant. se devuelve Null.

Por esta razón. se producirá un error. deberá vigilar que no se produzcan efectos no deseados. La primera expresión que da True tiene asociado un valor Null. se producirá un error en tiempo de ejecución. Switch (Función) Evalúa una lista de expresiones y devuelve un valor Variant o una expresión asociada a la primera instrucción de la lista que da como resultado True. Switch devolverá valor-2 y así sucesivamente. Switch devolverá un valor Null si:   Ninguna de las expresiones da True. Las expresiones se evalúan según aparecen en la lista. expresión-n. valor-2 … [. pero expresión-2 da True. Expresión del tipo Variant que se desea evaluar. "ABC") ' Devuelve "*****". Por ejemplo. Por ejemplo. . Sintaxis Switch(expresión-1. ' Devuelve "AAAAAAAAAA". ' Devuelve "@@@@@". de izquierda a derecha y se devuelve el valor asociado a la primera expresión que al evaluarse da True.valor-n]]) La sintaxis de la función Switch consta de las siguientes partes: Parte expresión valor Descripción Requerido. expresión-2. Si las partes no están emparejadas correctamente. Switch evalúa todas las expresiones. 64) MiCadena = String(10. si en la evaluación de una expresión hay una división por cero. "*") MiCadena = String(5.Dim MiCadena MiCadena = String(5. aunque solamente devuelve una de ellas. Switch devolverá valor-1. Si expresión-1 da False. Comentarios La lista de argumentos de la función Swicht está formada por pares de expresiones y valores. si expresión-1 da True. Valor o expresión que se devuelve si la expresión correspondiente da como resultado True. valor-1[. Requerido.

"Inglés". TiempoTotal . Sintaxis Timer Ejemplo de la función Timer En este ejemplo se utiliza la función Timer para detener la aplicación. "Francés") End Function Time (Función) Devuelve un valor de tipo Variant (Date) indicando la hora actual del sistema. NombreCiudad = "París". Function MatchUp (NombreCiudad As String) Matchup = Switch(NombreCiudad = "Londres". El ejemplo también utiliza DoEvents para pasar el control a otros procesos durante la pausa. Inicio. Timer (Función) Devuelve un tipo Single que representa el número de segundos transcurridos desde la medianoche.Ejemplo de la función Switch Este ejemplo utiliza la función Switch para devolver el nombre de un idioma que coincide con el nombre de una ciudad. NombreCiudad _ = "Roma". Dim TiempoPausa. Sintaxis Time Comentarios Use la instrucción Time para establecer la hora del sistema. "Italiano". Final.

puede especificar horas relativas para cada argumento. Variant (Integer). Loop Final = Time ' Asigna hora de finalización. minutos o segundos antes o después de cierta hora. Número entre 0 (12:00 a.). 0– 23 para horas y 0–59 para minutos y segundos. El ejemplo siguiente usa expresiones en lugar de números de hora absoluta.m. Cualquier expresión numérica.Inicio ' Calcula tiempo total. es decir. usando cualquier expresión numérica que represente algunas horas. ó 5:45:00 a. Requerido. como 11:59:59. segundo) La sintaxis de la función TimeSerial consta de los siguientes argumentos con nombre: Parte hora minuto segundo Descripción Requerido. TiempoTotal = Final .If (MsgBox("Presione Sí para parar 5 segundos".m.) y 23 (11:00 p. minuto y segundo específicos. minuto. .6). Cualquier expresión numérica. el intervalo de números para cada argumento de TimeSerial debería estar en el intervalo normalmente aceptado para la unidad. Comentarios Para especificar una hora. Variant (Integer). Sin embargo. Do While Timer < Inicio + TiempoPausa DoEvents ' Cambia a otros procesos. MsgBox "Detenida durante " & TiempoTotal & " segundos" Else End End If TimeSerial (Función) Devuelve un tipo Variant (Date) que contiene la hora actual para una hora. inclusive o una expresión numérica. 4)) = vbYes Then TiempoPausa = 5 ' Asigna hora de inicio. Sintaxis TimeSerial(hora. La función TimeSerial devuelve una hora que es 15 (-15) minutos menos que seis horas antes del mediodía (12 . Variant (Integer). Inicio = Timer ' Establece la hora de inicio. Requerido.m.

se evalúa como una hora y 15 minutos. Sin embargo.) a las 23:59:59 (11:59:59 p.767 o si la hora especificada por los tres argumentos. Si hora contiene Null. Por ejemplo. Dim MiTiempo MiTiempo = TimeSerial(16." y "14:24" son argumentos válidos de hora.TimeSerial(12 . si hora incluye información no válida de fecha.m. se produce un error. inclusive. Por ejemplo. -15.m.). Comentarios Puede introducir horas válidas usando un reloj de 12 horas o de 24 horas. se incrementa hasta la siguiente unidad mayor. Si el argumento hora contiene información de fecha.768 a 32. 17) ' correspondiente a 4:35:17 PM. minuto y segundo especificados. si un solo argumento está fuera del intervalo -32. ' MiTiempo contiene la hora TimeValue (Función) Devuelve un tipo Variant (Date) que contiene la hora. "2:24 p. hace que la fecha quede fuera del intervalo aceptable de valores. 0) Cuando algún argumento supera el intervalo normalmente aceptado para él. .m. la función devolverá Null. directamente o mediante expresión. si especifica 75 minutos.6. No obstante. Sin embargo. Ejemplo de la función TimeSerial En este ejemplo se utiliza la función TimeSerial para devolver la hora correspondiente a una hora. ocurrirá un error. 35. hora también puede ser cualquier expresión que pueda representar una hora en ese intervalo. Sintaxis TimeValue(hora) El argumento hora es normalmente una expresión de cadena que representa una hora desde las 0:00:00 (12:00:00 a. TimeValue no devuelve esta información.

También puede utilizar literales de fecha para asignar directamente una hora a una variable Variant o Date variable. por ejemplo. MiHora = #4:35:17 PM#. Dim MiHora MiHora = TimeValue("4:35:17 PM") ' Devuelve la hora.Ejemplo de la función TimeValue En este ejemplo se utiliza la función TimeValue para convertir una cadena de caracteres a hora. Sintaxis TypeName(nombrevariable) El argumento nombrevariable requerido. TypeName (Función) Devuelve una cadena (String) que proporciona información acerca de una variable. Comentarios La cadena devuelta por la función TypeName puede ser cualquiera de las siguientes: Cadena devuelta tipo de objeto Byte Integer Long Single Double Currency Decimal Date String La variable contiene Un objeto cuyo tipo es tipoobjeto Un valor byte Un entero Un entero largo Un número de punto flotante de precisión simple Un número de punto flotante de precisión doble Un valor de moneda Un valor decimal Un valor fecha Una cadena . es un tipo de datos Variant que contiene cualquier variable excepto una variable de un tipo definido por el usuario.

VarEnt As Integer. UCase (Función) Devuelve un tipo Variant (String) que contiene una cadena especificada que se ha convertido a mayúsculas. MiTipo = TypeName(VarEnt) ' Devuelve "Integer". ' Declara variables. Dim VarNull. VarCad As String. Ejemplo de la función TypeName En este ejemplo se utiliza la función TypeName para devolver información acerca de una variable. Por ejemplo. Sintaxis UCase(cadena) . MiTipo = TypeName(VarNull) ' Devuelve "Null". MiTipo. si nombrevariable es una matriz de números enteros. VarMon As Currency Dim VarMatriz (1 To 5) As Integer VarNull = Null ' Asigna un valor Null. la función TypeName devuelve "Integer()". MiTipo = TypeName(VarCad) ' Devuelve "String". la cadena devuelta puede ser cualquiera de las posibles (o Variant) con un paréntesis vacío añadido. MiTipo = TypeName(VarMatriz) ' Devuelve "Integer()".Boolean Error Empty Null Object Desconocido Nothing Un valor booleano Un valor de error No inicializado Datos no válidos Un objeto Un objeto cuyo tipo es desconocido Una variable de que no hace referencia a un objeto Si nombrevariable es una matriz. MiTipo = TypeName(VarMon) ' Devuelve "Currency".

Val devuelve el valor decimal -1 correspondiente al valor hexadecimal entre paréntesis: .") En el código que se muestra a continuación.El argumento cadena necesario es cualquier expresión de cadena válida. ' Devuelve "HOLA MUNDO 1234". Las letras mayúsculas o los caracteres que no son letras no sufren cambios. Comentarios Sólo se convierten a mayúsculas las letras minúsculas. los tabuladores y los avances de línea se eliminan del argumento. se devuelve Null. Lo siguiente devuelve el valor 1615198: Val(" 1615 198 Calle N.E. Ejemplo de la función UCase En este ejemplo se utiliza la función UCase para devolver la versión en mayúsculas de una cadena. no se reconocen. Sin embargo. Val (Función) Devuelve los números contenidos en una cadena como un valor numérico del tipo adecuado. UpperCase LowerCase = "Hola Mundo 1234" UpperCase = UCase(LowerCase) ' Cadena a convertir. Si cadena contiene Null. la función reconoce los prefijos de base &O (para octal) y &H (para hexadecimal). Los espacios en blanco. Dim LowerCase. Los símbolos y caracteres que se consideran a menudo parte de valores numéricos. Sintaxis Val(cadena) El argumento obligatorio cadena es cualquier expresión de cadena válida. como signos de moneda y comas. Comentarios La función Val deja de leer la cadena en el primer carácter que no puede reconocer como parte de un número.

Val("&HFFFF") Nota La función Val sólo reconoce el punto (. Dim MiValor MiValor = Val("2457") MiValor = Val(" 2 45 7") MiValor = Val("24 y 57") ' Devuelve 2457.) como separador decimal válido. Si fecha contiene Null. Sintaxis Weekday(fecha. Opcional. [primerdíasemana]) La sintaxis de la función Weekday consta de los siguientes argumentos con nombre: Parte fecha Descripción Requerido. como en aplicaciones internacionales. ' Devuelve 24. Weekday (Función) Devuelve un valor de tipo Variant (Integer) que contiene un número entero que representa el día de la semana. se asume el valor vbSunday. expresión numérica. expresión de cadena o cualquier combinación que puede representar una fecha. Variant. Si no se especifica. primerdíasemana Valores El argumento primerdíasemana tiene estos valores: Constante Valor Descripción . Ejemplo de la función Val En este ejemplo se utiliza la función Val para devolver los números contenidos en una cadena. la función devolverá Null. debe utilizar CDbl para convertir una cadena a un número. ' Devuelve 2457. Una constante que especifica el primer día de la semana. Cuando se utilizan separadores decimales diferentes.

' MiDíaSemana contiene 4 ya que .vbUseSystem vbSunday vbMonday vbTuesday vbWednesday vbThursday vbFriday vbSaturday 0 1 2 3 4 5 6 7 Utilice configuración de la API de NLS. MiDíaSemana MiFecha = #12 febrero 1969# MiDíaSemana = Weekday(MiFecha) ' MiFecha es un miércoles. Dim MiFecha. Domingo (predeterminado) Lunes Martes Miércoles Jueves Viernes Sábado Valores devueltos La función Weekday puede devolver cualquiera de estos valores: Constante vbSunday vbMonday vbTuesday Valor 1 2 3 Domingo Lunes Martes Miércoles Jueves Viernes Sábado Descripción vbWednesday 4 vbThursday vbFriday vbSaturday 5 6 7 Ejemplo de la función Weekday En este ejemplo se utiliza la función Weekday para obtener el día de la semana de una fecha especificada. ' Asigna una fecha.

Sintaxis WeekdayName(díaDeLaSemana. Un valor numérico que indica el primer día de la semana. Martes. Lunes. Opcional. La designación numérica para el día de la semana.WeekdayName (Función) Descripción Devuelve una cadena que indica el día de la semana especificado. abreviar. . el valor predeterminado es False. Si se omite. que significa que el nombre del día de la semana no se abrevia. Un valor Boolean que indica si se abrevia el nombre del día de la semana. Opcional. Miércoles. primerDíaDeLaSemana) La sintaxis de la función WeekdayName consta de las siguientes partes: Parte díaDeLaSemana Descripción Requerido. Domingo (predeterminado). abreviar primerDíaDeLaSemana Valores El argumento primerDíaDeLaSemana puede tener los valores siguientes: Constante vbUseSystem vbSunday vbMonday vbTuesday vbWednesday 0 1 2 3 4 Valor Descripción Utilizar la configuración de la API National Language Support (NLS). Vea la sección Valores para consultar los valores posibles. El valor numérico de cada día depende de la configuración del valor primerDíaDeLaSemana.

vbThursday vbFriday vbSaturday

5 6 7

Jueves. Viernes. Sábado.

Year (Función)
Devuelve un valor de tipo Variant (Integer) que contiene un número entero que representa el año. Sintaxis Year(fecha) El argumento fecha es cualquier valor de tipo Variant, expresión numérica, expresión de cadena o cualquier combinación que puede representar una fecha. Si fecha contiene Null, la función devolverá Null.

Ejemplo de la función Year
En este ejemplo se utiliza la función Year para obtener el año de una fecha especificada. En el entorno de desarrollo, la hora(literal de fecha), se presentará en formato abreviado, utilizando la configuración regional del código.
Dim MiFecha, MiAño MiFecha = #12 febrero 1969#' Asigna una fecha. MiAño = Year(MiFecha) ' MiAño contiene 1969.

Funciones matemáticas
Abs (Función) Atn (Función) Cos (Función) Exp (Función) Fix (Función)

Int (Función) Log (Función) Rnd (Función) Sgn (Función) Sin (Función) Sqr (Función) Tan (Función)

Funciones matemáticas derivadas
La siguiente es una lista de funciones matemáticas no intrínsecas que pueden derivarse de funciones matemáticas intrínsecas: Función Secante Cosecante Cotangente Seno inverso Coseno inverso Secante inversa Cosecante inversa Cotangente inversa Seno hiperbólico Coseno hiperbólico Tangente hiperbólica Secante hiperbólica Derivadas equivalentes Sec(X) = 1 / Cos(X) Cosec(X) = 1 / Sin(X) Cotan(X) = 1 / Tan(X) Arcsin(X) = Atn(X / Sqr(-X * X + 1)) Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1) Arcsec(X) = Atn(X / Sqr(X * X – 1)) + Sgn((X) – 1) * (2 * Atn(1)) Arccosec(X) = Atn(X / Sqr(X * X – 1)) + (Sgn(X) – 1) * (2 * Atn(1)) Arccotan(X) = Atn(X) + 2 * Atn(1) HSin(X) = (Exp(X) – Exp(–X)) / 2 HCos(X) = (Exp(X) + Exp(–X)) / 2 HTan(X) = (Exp(X) – Exp(–X)) / (Exp(X) + Exp(–X)) HSec(X) = 2 / (Exp(X) + Exp(–X))

Cosecante hiperbólica Cotangente hiperbólica Seno hiperbólico inverso Coseno hiperbólico inverso Tangente hiperbólica inversa Secante hiperbólica inversa

HCosec(X) = 2 / (Exp(X) – Exp(–X)) HCotan(X) = (Exp(X) + Exp(–X)) / (Exp(X) – Exp(–X)) HArcsin(X) = Log(X + Sqr(X * X + 1)) HArccos(X) = Log(X + Sqr(X * X – 1)) HArctan(X) = Log((1 + X) / (1 – X)) / 2 HArcsec(X) = Log((Sqr(–X * X + 1) + 1) / X)

Cosecante hiperbólica inversa HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) + 1) / X) Cotangente hiperbólica inversa Logaritmo en base N HArccotan(X) = Log((X + 1) / (X – 1)) / 2 LogN(X) = Log(X) / Log(N)

Operadores aritméticos
^ (operador) * (operador) / (operador) \ (operador) Mod (operador) + (operador) - (operador)

\ (Operador)
Se utiliza para dividir dos números y obtener un resultado entero. Sintaxis resultado = número1\número2

La sintaxis del operador \ consta de las siguientes partes: Parte Descripción resultado Requerido. Comentarios Antes de efectuar la división se redondean las expresiones numéricas para convertirlas en expresiones tipo Byte. Integer o Long. tipo Integer o Integer tipo variant. La parte fraccionaria se trunca. Ejemplo del operador \ En estos ejemplos se utiliza el operador \ para ejecutar divisiones de enteros. Toda expresión que sea Empty se considera como 0. número2 Requerido. cualquier variable numérica. . independientemente de si el resultado es un número entero o no. tipo Long o Long tipo variant. si cualquiera de las expresiones es Null. Normalmente. + (Operador) Se utiliza para sumar dos números. resultado es Null. el tipo de dato del resultado es tipo Byte. cualquier expresión numérica. Dim MiValor MiValor = 11 \ 4 MiValor = 9 \ 3 MiValor = 100 \ 3 ' Devuelve 2. Byte tipo variant. Sin embargo. ' Devuelve 3. Sintaxis resultado = expresión1+expresión2 La sintaxis del operador + consta de las siguientes partes: Parte resultado Descripción Requerido. cualquier expresión numérica. número1 Requerido. ' Devuelve 33. cualquier variable numérica.

Integer. y la otra de tipo String Cualquiera de las expresiones es Null resultado es Null. Si ambas expresiones son del tipo Variant. Currency o Decimal) Ambas expresiones son del tipo String Suma. Comentarios Cuando utilice el operador + . Una expresión es de un tipo de datos numérico Suma. Date. Devuelve sin modificaciones la expresión restante como resultado. y la otra cualquier tipo Variant excepto Null Una expresión es del tipo String y la otra cualquier tipo Variant excepto Null Una expresión es del tipo Empty Variant Concatenación. Utilice el operador & para la concatenación. Long. Concatenación. Single. cualquier expresión. Double. se aplican las siguientes reglas: Si Ambas expresiones son tipos de datos numéricos (Byte. se aplican las siguiente reglas: Si Ambas expresiones tipo Variant son numéricas Ambas expresiones tipo Variant son cadenas de caracteres Una expresión tipo Variant es numérica y la otra es una cadena de caracteres Suma. expresión2 Requerido. Si hay al menos una expresión que no sea de tipo Variant. Entonces . Suma. Entonces Concatenación. de modo que se eviten ambigüedades y se suministren programas claros y explícitos.Expresión1 Requerido. cualquier expresión. Boolean. quizá no pueda determinar si se va a realizar una suma o una concatenación de cadenas. Una expresión es de un tipo de datos numérico Puede ocurrir un Error de tipos.

se devuelve la otra sin modificaciones como resultado. ' Inicializa variables mezcladas. El tipo de dato de resultado es Long. para evitar ambigüedades. Esta regla tiene las siguientes excepciones: Si Se suman un tipo Single y un tipo Long.04. Nota El orden de precisión utilizado por la suma y la resta no es igual que el orden de precisión utilizado por la multiplicación. Single. Integer.04 + 98112 Var1 = "34": Var2 = 6 MiNúmero = Var1 + Var2 Var1 = "34": Var2 = "6" MiNúmero = Var1 + Var2 cadenas). ' Devuelve 102369. Currency y Decimal. Si los componentes son cadenas exclusivamente. ' Devuelve 40. Un Date se agrega a cualquier tipo de dato. resultado es Null. Var1. El operador + puede utilizarse también para concatenar cadenas de caracteres pero. Si una de las expresiones o ambas son expresiones de tipo Null. de menos exacto a más exacto. El resultado es un tipo Double. ' Inicializa las variables con cadenas. ' Devuelve "346" (concatenación de . ' Devuelve 4. Ejemplo del operador + En estos ejemplos se utiliza el operador + para sumar números. Double. Si ambas expresiones son Empty.En adiciones aritméticas simples de expresiones de tipos de datos numéricos únicamente. el resultado es Integer. Dim MiNúmero. es Byte. se concatenan las cadenas. es mejor utilizar para ello el operador &. Sin embargo. Var2 MiNúmero = 2 + 2 MiNúmero = 4257. El orden de precisión. se convierte a un Long tipo variant. Si los componentes de una expresión creada con el operador + incluyen tanto cadenas como elementos numéricos. se convierte a un Integer tipo variant. un tipo Date. El tipo de dato de resultado es un Byte tipo variant que se sale del intervalo válido. se convierte a un Double tipo variant. El tipo de dato de resultado es un Integer tipo variant que se sale del intervalo válido. sólo una de las expresiones es Empty. Single o Date tipo variant que desborda su intervalo válido. se asigna el resultado aritmético. el tipo de dato de resultado es habitualmente el mismo que el de la expresión con mayor precisión. Long.

Requerido. cualquier expresión de cadena.Like (Operador) Se utiliza para comparar dos cadenas de caracteres. En Microsoft Windows. aparecen en el siguiente orden: (A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø) . el resultado es True. si no coincide. Sintaxis resultado = cadena Like patrón La sintaxis del operador Like consta de las siguientes partes: Parte resultado cadena patrón Descripción Requerido. El método predeterminado de comparación de cadenas para cada módulo es Option Compare Binary. Los mismos caracteres del ejemplo anterior. el orden depende de la página de código. En el siguiente ejemplo se ilustra un orden binaria típico: A<B<E<Z<a<b<e<z<À<Ê<Ø<à<ê<ø Option Compare Text da como resultado comparaciones de cadenas basadas en el orden determinado por la configuración regional de su sistema. el resultado es False. Comentarios Si cadena coincide con patrón. Requerido. cualquier variable numérica. Option Compare Binary da como resultado comparaciones de cadenas basadas en el orden derivado de las representaciones binarias internas de los caracteres. ordenados con la opción Option Compare Text. el resultado es también Null. cualquier expresión de cadena que satisface las convenciones de coincidencia de patrones descritas en Comentarios. El comportamiento del operador Like depende de la instrucción Option Compare. Si cadena o patrón es Null.

sin necesidad de delimitadores. listas de caracteres o intervalos de caracteres en cualquier combinación para hallar coincidencias en cadenas. Se puede utilizar un grupo de uno o más caracteres (listacaracteres) entre corchetes ([ ]) para establecer una coincidencia con un carácter cualquiera de cadena. B y E. la secuencia [A–Z] en patrón permite hallar una coincidencia si en la posición correspondiente de cadena hay un carácter en mayúsculas cualquiera. e. Se pueden incluir múltiples intervalos entre corchetes. b. E. El significado del intervalo especificado depende de la ordenación de caracteres válida en tiempo de ejecución (determinado por Option Compare y la configuración regional del sistema dónde está ejecutándose el código). comprendido en el intervalo de la A a la Z. Puede especificar un intervalo de caracteres en listacaracteres colocando un guión (–) para separar los límites inferior y superior del intervalo.La función integrada de búsqueda de coincidencia de patrones ofrece una herramienta versátil para efectuar comparaciones de cadenas. interrogación (?). Nota Los caracteres especiales corchete de apertura ([). B. À. Las características de esta función permiten el empleo de caracteres comodín. Ê y ê no se incluyen entre las coincidencias porque los caracteres acentuados se encuentran después de los no acentuados en el orden. a. como carácter independiente. El corchete de cierre (]) no se puede utilizar en un grupo para establecer una coincidencia con sí mismo. à. Si se utiliza el ejemplo con Option Compare Binary. pero sí se puede utilizar fuera de un grupo. signo de número (#) y asterisco (*) se pueden utilizar para establecer una coincidencia con sí mismos sólo si van entre corchetes. Cero o más caracteres. en [A–E] coinciden A. Con Option Compare Text. Un carácter cualquiera de listacaracteres. el grupo puede incluir casi cualquier código de carácter. Otras reglas importantes para efectuar coincidencias de patrones son las siguientes: . incluyendo dígitos. en el intervalo [A–E] coinciden A. En la siguiente tabla se indican los caracteres que se pueden poner en patrón y con qué coinciden los mismos: Caracteres en pattern ? * # [listacaracteres] [!listacaracteres] Coincidencias en string Un carácter cualquiera. Por ejemplo. Un dígito cualquiera (0–9). Un carácter cualquiera no incluido en listacaracteres.

 Una exclamación (!) al comienzo de listacaracteres significa que hay coincidencias. Ejemplo del operador Like En estos ejemplos se utiliza el operador Like para ejecutar una exclusión lógica sobre dos expresiones. al ocurrir el carácter especial en patrón o cadena. coincide con la secuencia equivalente de 2 caracteres en la otra cadena. varios idiomas emplean el carácter "æ" para representar los caracteres "a" y "e" cuando aparecen juntos. Mod (Operador) Divide dos números y devuelve sólo el resto. dentro de la cadena para cualquier carácter excepto los incluidos en listacaracteres. el guión sólo se puede utilizar para identificar un intervalo de caracteres. Por ejemplo. MiPrueba = "a2a" Like "a#a" ' Devuelve True. en una lista o en un intervalo) coincide con la secuencia de 2 caracteres equivalente en cadena. un único carácter especial en patrón incluido entre corchetes (en solitario. La secuencia de caracteres [] se considera una cadena de caracteres de longitud cero ("").    El alfabeto de algunos idiomas incluye caracteres especiales que en realidad representan dos caracteres distintos. si se emplea) o al final de listacaracteres para coincidir consigo mismo. MiPrueba = "F" Like "[A-Z]" ' Devuelve True. Si no se encierra entre corchetes.[A-Z] es un patrón válido. En cualquier otro lugar. la exclamación coincide consigo misma. pero [Z-A] no lo es. MiPrueba = "F" Like "[!A-Z]" ' Devuelve False. El guión (–) puede aparecer tanto al comienzo (después de la exclamación. Cuando se especifica un intervalo de caracteres. Igualmente. MiPrueba = "CAT123khg" Like "B?T*" ' Devuelve False. MiPrueba = "aM5b" Like "a[L-P]#[!c-e]" ' Devuelve True. Sintaxis . El operador Like reconoce que el carácter especial único y los dos caracteres individuales son equivalentes. Dim MiPrueba MiPrueba = "aBBBa" Like "a*a" ' Devuelve True. éstos deben aparecer en orden ascendente (de menor a mayor). Cuando se especifica en la configuración regional del sistema un idioma que utiliza uno de estos caracteres especiales. MiPrueba = "BAT123khg" Like "B?T*" ' Devuelve True.

cualquier expresión numérica. tipo Integer.6 Mod 5 ' Devuelve 0. cualquier expresión numérica. Byte tipo variant. o resto. A (que es el resultado) es igual a 5. Sin embargo. La parte fraccionaria se trunca. A = 19 Mod 6. si cualquiera de las expresiones es Null. en la siguiente expresión. ' Devuelve 1. Toda expresión Empty se considera como 0. tipo Long o tipo Variant que contiene un tipo Long. cualquier variable numérica.7 Generalmente. Prioridad de los operadores Cuando hay varias operaciones en una misma expresión. divide número1 por número2 (redondeando a enteros los números de signo flotante) y devuelve sólo el resto como resultado. Comentarios El operador de módulo. Integer tipo variant. independientemente de si el resultado es un número entero o no. Si uno de los números es de coma flotante. ' Devuelve 3. cada parte de la misma se evalúa y se resuelve en un orden predeterminado según la prioridad de los operadores. número1 Requerido. . el resultado es también Null. Dim MiResultado MiResultado = 10 Mod 5 MiResultado = 10 Mod 3 MiResultado = 12 Mod 4. ' Devuelve 0. número2 Requerido.resultado = número1 Mod número2 La sintaxis del operador Mod consta de las siguientes partes: Parte Descripción resultado Requerido. el tipo de dato de resultado es tipo Byte. Ejemplo del operador Mod En estos ejemplos se utiliza el operador Mod para dividir dos números y obtener como resultado sólo el resto de la división. Por ejemplo.3 MiResultado = 12. se redondea primero para convertirlo en un entero.

El operador de concatenación de cadenas (&) no es realmente un operador aritmético. cada operación se evalúa a medida que aparece. Sin embargo. dentro de los paréntesis. pero en orden de prioridad se encuentra a continuación de todos los operadores aritméticos y antes que todos los operadores de comparación. Las operaciones entre paréntesis se realizan antes que las de fuera. El operador Like. cada operación se evalúa tal como aparecen de izquierda a derecha. en el orden en que aparecen. Del mismo modo. a continuación las que tienen operadores de comparación y por último las de operadores lógicos. Los operadores lógicos y aritméticos se evalúan en el siguiente orden de prioridad: Aritméticos Exponenciación (^) Negación (–) Multiplicación y división (*. Los operadores de comparación tienen todos la misma prioridad. sólo determina si dos referencias de objeto se refieren al mismo objeto. la precedencia de los operadores se mantiene. es decir. No compara objetos ni valores de objetos. cuando se presentan adiciones y substracciones en una misma expresión. –) Concatenación de cadenas (&) Comparación Igualdad (=) Desigualdad (<>) Menor que (<) Mayor que (>) Menor o igual que (<=) Mayor o igual que (>=) Like Is Not And Or Xor Eqv Imp Lógicos Cuando hay multiplicación y división en la misma expresión. se resuelven antes las que tienen operadores aritméticos. . a pesar de tener la misma prioridad que los operadores de comparación. es en realidad un operador de coincidencia de patrones. Es posible usar paréntesis para saltar el orden de preferencia y forzar que algunas partes de una expresión se evalúen antes que otras.Cuando hay expresiones que contienen operadores de más de una categoría. se evalúan de izquierda a derecha. El operador Is es un operador de comparación de referencia de objetos. de izquierda a derecha. /) División de enteros (\) Módulo aritmético (Mod) Adición y substracción (+.

593.647 -3. incluyendo el tamaño de almacenamiento y el intervalo.685. 4. +/-7.767 -2.79769313486232E308 para valores positivos -922.000 millones Intervalo 8 bytes Currency (entero a escala) Decimal 8 bytes 14 bytes Date Object String (longitud variable) 8 bytes 4 bytes 10 bytes + longitud de la cadena .79769313486231E308 a -4.5807 +/79. el número más pequeño distinto de cero es +/-0.9228162514264337593543950335 con 28 posiciones a la derecha del signo decimal.514.335 sin punto decimal.768 a 32.483.147.162.685. Tipo de datos Byte Boolean Integer Long (entero largo) Single (coma flotante/ precisión simple) Double (coma flotante/ precisión doble) Tamaño de almacenamiento 1 byte 2 bytes 2 bytes 4 bytes 4 bytes 0 a 255 True o False -32.203.264.543.401298E-45 a 3.401298E-45 para valores negativos.5808 a 922.402823E38 a –1.94065645841247E-324 a 1.147.648 a 2. 1.477.483.337.228.0000000000000000000000000001 1 de enero de 100 a 31 de diciembre de 9999 Cualquier referencia a tipo Object Desde 0 a 2.950.337.477.94065645841247E-324 para valores negativos.337.Resumen de tipos de datos La tabla siguiente muestra los tipos de datos compatibles.203.402823E38 para valores positivos -1.

Note Use the StrConv function to convert one type of string data to another. Puede calcular la memoria que ocupan los datos multiplicando el número de elementos de datos por el tamaño de cada elemento. Nota Las matrices de cualquier tipo de datos requieren 20 bytes de memoria más cuatro bytes para cada dimensión de matriz.400 aproximadamente Cualquier valor numérico hasta el intervalo de un tipo Double El mismo intervalo que para un tipo String de longitud variable El intervalo de cada elemento es el mismo que el intervalo de su tipo de datos. Un tipo Variant que contiene una matiz requiere 12 bytes más que la matriz por sí sola. los datos de una matriz unidimensional que consten de cuatro elementos de datos tipo Integer de dos bytes cada uno. . Los ocho bytes que requieren los datos más los 24 bytes necesarios para la matriz suman un requisito total de memoria de 32 bytes para dicha matriz. más el número de bytes que ocupan los propios datos. ocupan ocho bytes.String (longitud fija) Variant (con números) Variant (con caracteres) Definido por el usuario (utilizando Type) Longitud de la cadena 16 bytes 22 bytes + longitud de la cadena Número requerido por los elementos Desde 1 a 65. Por ejemplo.

Next.Else. Select Case). Sintaxis GoTo línea El argumento línea puede ser cualquier etiqueta de línea o número de línea. Ejemplo de la instrucción GoTo En este ejemplo se utiliza la instrucción GoTo para saltar a etiquetas de línea ubicadas dentro de un procedimiento. MiCadena Número = 1 ' Inicializa la variable. Line2: ' La siguiente instrucción nunca se ejecuta.. If Número = 1 Then GoTo Line1 Else GoTo Line2 Line1: MiCadena = "Número es igual a 1" GoTo LastLine ' Va a la última linea... Comentarios GoTo solamente puede saltar a líneas del procedimiento en el que aparece.Then. If. For.GoTo (Instrucción) Salta incondicionalmente a una línea especificada en un procedimiento. ' Evalúa Número y salta al rótulo apropiado. Sub GotoStatementDemo() Dim Número. Siempre que sea posible.Print MiCadena ' Imprime "Número es igual a 1" en la ' ventana Inmediato End Sub Kill (Instrucción) Elimina archivos del disco. Sintaxis ... MiCadena = "Número igual a 2" LastLine: Debug.Loop... utilice instrucciones de control estructuradas (Do.. Nota Demasiadas instrucciones GoTo pueden ser difíciles de leer y de depurar.

"*.TXT del directorio actual. en Macintosh. "PRUEBA" ' Se elimina el archivo. Sin embargo. estos caracteres son tratados como caracteres de nombre de archivo válidos y no se pueden utilizar como comodines para especificar múltiples nombres de archivo.Kill nombre_ruta El argumento requerido nombre_ruta es una expresión de cadena que especifica uno o más nombres de archivos que se van a eliminar. Comentarios En Microsoft Windows. eliminan todos los archivos *. Puede incluir el directorio o carpeta y la unidad de disco. La función Kill permite el uso de los caracteres comodín '*' (múltiples caracteres) y '?' (un solo carácter) para especificar varios archivos. Ejemplo de la instrucción Kill En este ejemplo se utiliza la instrucción Kill para borrar un archivo de un disco.TXT" . ' Se Kill ' Se Kill supone que PRUEBA es un archivo que contiene información.

Tipo de datos del valor devuelto por el procedimiento Function.Function (Instrucción) Declara el nombre. Opcional. La variables múltiples se separan por comas. incluso aunque se utilicen en el procedimiento. Currency. Requerido. Lista de variables que representan argumentos que se pasan al procedimiento Function cuando se llama. Opcional. Indica que el procedimiento Function es accesible para todos los demás procedimientos de todos los módulos. sigue las convenciones estándar de nombres de variables. pero no es visible para un controlador de una instancia de un objeto. el procedimiento no estará disponible fuera del proyecto. Long. Opcional. Opcional. Indica que las variables locales del procedimiento Function se conservan entre las distintas llamadas. Integer. Indica que el procedimiento Function sólo es accesible para otros procedimientos del módulo donde se declara. El atributo Static no afecta a las variables que se declaran fuera de Function. Sintaxis [Public | Private | Friend] [Static] Function nombre [(lista_argumentos)] [As tipo] [instrucciones] [nombre = expresión] [Exit Function] [instrucciones] [nombre = expresión] End Function La sintaxis de la instrucción Function consta de las siguientes partes: Parte Public Descripción Opcional. Si se utiliza en un módulo que contiene Option Private. Se utiliza solamente en un módulo de clase. los argumentos y el código que componen el cuerpo de un procedimiento Function. Single. Boolean. puede ser Byte. Indica que el procedimiento Function es visible a través del proyecto. Private Friend Static Nombre lista_ argumentos tipo . Nombre del procedimiento Function. Opcional.

o cualquier tipo definido por el usuario. Currency. Boolean. La palabra clave ParamArray le permite proporcionar un número arbitrario de argumentos. Si se utiliza. Single. Indica que un argumento no es necesario. Double. Variant. El argumento lista_argumentos tiene la siguiente sintaxis y partes: [Optional] [ByVal | ByRef] [ParamArray] nombre_variable[( )] [As tipo] [= valor_predeterminado] Parte Optional Descripción Opcional. se puede especificar también un tipo definido por el usuario. Opcional. Cualquier constante o expresión constante. o un tipo de objeto específico. Object. Date. ByVal ByRef ParamArray nombre_ variable tipo valor_ Opcional. puede ser Byte. Opcional. Decimal (no compatible actualmente). Valor de retorno de Function. Tipo de datos del argumento pasado al procedimiento. String (sólo longitud variable). Object. String. Variant. Sólo es válido para predeterminado parámetros Optional. Indica que el argumento se pasa por referencia. o (excepto longitud fija). Comentarios . Long. un valor predeterminado explícito sólo puede ser Nothing. Indica que el argumento se pasa por valor. Opcional. Si el tipo es Object. Opcional. No puede utilizarse con ByVal. ByRef es el valor predeterminado en Visual Basic. Opcional. Nombre de la variable que representa el argumento. Si el parámetro no es Optional. todos los argumentos posteriores de lista_argumentos también deben ser opcionales y declararse mediante la palabra clave Optional. Decimal (no admitido actualmente). Optional no se puede utilizar para cualquier argumento si se emplea ParamArray. Requerido. sigue las convenciones estándar de nombres de variables. Cualquier grupo de instrucciones que se van a ejecutar dentro del procedimiento Function.Double. Sólo se utiliza como último argumento de lista_argumentos para indicar que el último argumento es una matriz Optional de elementos Variant. Integer. ByRef u Optional. Date. instrucciones expresión Opcional.

Sin embargo. Para llamar a un procedimiento Function. . La instrucción Exit Function produce una salida inmediata de un procedimiento Function. Sub o Property. If lower > upper Then . asigne el valor al nombre de la función. La palabra clave Static no se suele utilizar con procedimientos Function recursivos. . . Un procedimiento Friend no aparece en la biblioteca de tipos de su clase primaria. un procedimiento Function es un procedimiento independiente que puede adoptar argumentos. cuando desea emplear el valor devuelto por la función. La palabra clave Friend sólo puede usarse en módulos de clase. Consulte la instrucción Call para obtener información específica acerca de cómo llamar a los procedimientos Function. Cos o Chr. Sin embargo. Precaución Los procedimientos Function pueden ser recursivos. Una función que devuelve una referencia de objeto devuelve Nothing si no se asigna ninguna referencia de objeto a nombre (mediante Set) dentro del procedimiento Function. Function BinarySearch(. a diferencia de un procedimiento Sub. En cualquier lugar de un procedimiento Function puede aparecer cualquier número de instrucciones Exit Function. El ejemplo siguiente muestra cómo asignar un valor de retorno a una función llamada BinarySearch. Todo el código ejecutable debe estar dentro de procedimientos. el procedimiento devolverá un valor predeterminado: una función numérica devuelve 0. False se asigna al nombre para indicar que no se encontró algún valor. como Sqr. Private o Friend. el valor de las variables locales no se conserva entre distintas llamadas. utilice en una expresión el nombre de función seguido de la lista de argumentos entre paréntesis. Si no se emplea Static. En cualquier lugar del procedimiento puede aparecer cualquier número de asignaciones de este tipo. No puede definir un procedimiento Function dentro de otro procedimiento Function.Si no se especifican de forma explícita mediante Public. En este caso. pueden llamarse a sí mismos para realizar una tarea determinada. una función de cadena devuelve una cadena de longitud cero ("") y una función Variant devuelve Empty. ' Valor no encontrado.) As Boolean . . Si no se asigna ningún valor a nombre. realizar una serie de instrucciones y cambiar los valores de sus argumentos. Al igual que un procedimiento Sub. Sin embargo. los procedimientos Function son públicos de manera predeterminada. puede accederse a los procedimientos Friend por procedimientos en cualquier módulo de un proyecto. Para devolver un valor de una función. es decir. La ejecución del programa continúa con la instrucción que sigue a la instrucción que llamó al procedimiento Function. la recursión puede provocar el desbordamiento de pila. puede utilizar un procedimiento Function en el lado derecho de una expresión de la misma forma en que utiliza cualquier función intrínseca. Devuelve un valor False.

Precaución Un procedimiento puede utilizar una variable que no se ha declarado explícitamente en el procedimiento.BinarySearch = False Exit Function End If . a menos que se hayan declarado explícitamente en algún nivel superior fuera del procedimiento. Si su procedimiento hace referencia a una variable no declarada que tiene el mismo nombre que otro procedimiento. constante o variable. Las variables que se utilizan pero no se declaran explícitamente en un procedimiento también son locales. se supone que el procedimiento hace referencia a ese nombre a nivel de módulo. Las variables que se declaran explícitamente en un procedimiento (mediante Dim u otra instrucción equivalente) siempre son locales del procedimiento. End Function Las variables empleadas en procedimientos Function se dividen en dos categorías: las que se declaran explícitamente dentro del procedimiento y las que no. . Puede utilizar una instrucción Option Explicit para forzar la declaración explícita de variables. . pero puede ocurrir un conflicto de nombres si algo que definió en un nivel de módulo tiene el mismo nombre. Evite utilizar un procedimiento Function en una expresión aritmética cuando la función cambie el valor de las variables de la misma expresión. Declare explícitamente las variables para evitar este tipo de conflicto. Precaución Visual Basic puede reorganizar las expresiones aritméticas para mejorar su eficacia interna. .

" End Sub Repetir instrucciones hasta que una condición llegue a ser True Hay dos formas de utilizar la palabra clave Until para comprobar el estado de una condición en una instrucción Do." End Sub Sub ComFinalWhile() contador = 0 miNum = 9 Do miNum = miNum . En el siguiente procedimiento ComPrimeroWhile. Sub ComPrimeroUntil() .1 contador = contador + 1 Loop While miNum > 10 MsgBox "El bucle se ha repetido " & contador & " veces. Repetir instrucciones mientras una condición es True Hay dos formas de utilizar la palabra clave While para comprobar el estado de una condición en una instrucción Do..Loop para ejecutar un bloque de instrucciones un número indefinido de veces. o después de que el bucle se haya ejecutado al menos una vez. la condición se comprueba antes de entrar en el bucle... las instrucciones contenidas en el bucle no se ejecutarán nunca. Se puede comprobar la condición antes de entrar en el bucle (como muestra el procedimiento ComPrimeroUntil) o se pueden comprobar después de que el bucle se haya ejecutado al menos una vez (como muestra el procedimiento ComFinalUntil).Loop Se pueden usar instrucciones Do. Las instrucciones se repiten mientras una condición sea True o hasta que llegue a ser True.Loop. En el procedimiento ComFinalWhile.. Si miNum vale 9 en vez de 20.1 contador = contador + 1 Loop MsgBox "El bucle se ha repetido " & contador & " veces.. El bucle sigue ejecutándose mientras la condición siga siendo False.Loop.... las instrucciones contenidas en el bucle sólo se ejecutarán una vez antes de que la condición llegue a ser False.Utilizar instrucciones Do. Sub ComPrimeroWhile() contador = 0 miNum = 20 Do While miNum > 10 miNum = miNum . Se puede comprobar la condición antes de entrar en el bucle.

se asigna a miNum un valor que crea un bucle sin fin. el bucle seguirá ejecutándose normalmente.Next .Else comprueba esa condición y ejecuta entonces la salida.. para salir de un bucle sin fin.Loop usando la instrucción Exit Do.Then..1 contador = contador + 1 Loop MsgBox "El bucle se ha repetido " & contador & " veces...1 contador = contador + 1 If miNum < 10 Then Exit Do Loop MsgBox "El bucle se ha repetido " & contador & " veces. Si la condición es False. Sub EjemploSalida() contador = 0 miNum = 9 Do Until miNum = 10 miNum = miNum ." End Sub Instrucción de salida de Do..Then.Loop desde dentro del bucle Es posible salir de Do.. evitando así el bucle sin fin.. En el siguiente ejemplo.... La instrucción If. Utilizar instrucciones For Each..contador = 0 miNum = 20 Do Until miNum = 10 miNum = miNum .Else o Select Case." End Sub Sub ComFinalUntil() contador = 0 miNum = 1 Do miNum = miNum + 1 contador = contador + 1 Loop Until miNum = 10 MsgBox "El bucle se ha repetido " & counter & " veces.." End Sub Nota Para detener la ejecución de un bucle sin fin.. Por ejemplo. presione la tecla ESC o CTRL+PAUSE.. se puede usar la instrucción Exit Do en el bloque de instrucciones True de una instrucción If.

Sub CierraFormul() For Each frm In Application.Then..Else o Select Case que detecte específicamente el error. se presenta un mensaje en pantalla y Exit For abandona el bucle.Value) = False Then MsgBox "El objeto contiene un valor no numérico.Caption <> Screen." Exit For End If . El siguiente procedimiento recorre las celdas del rango A1:D10 de la Página1 y convierte cualquier valor absoluto menor de 0.Value = 0 Next End Sub Salir de un bucle For Each.ActiveForm.Next repiten un bloque de instrucciones para cada uno de los objetos de una colección o para cada elemento de una matriz.Forms If frm. cuando se produce un error se puede usar la instrucción Exit For en el bloque de instrucciones True de una instrucción If.Value) < 0... El siguiente ejemplo detecta la primera celda del rango A1:B5 que no contiene un número.01 Then miObjeto. Dim PruebaMatriz(10) As Integer.Las instrucciones For Each. Si se encuentra una celda en esas condiciones.. Por ejemplo. Visual Basic asigna valor automáticamente a una variable cada vez que se ejecuta el bucle. Sub BuscaNumeros() For Each miObjeto In MiColeccion If IsNumeric(miObjeto. Si el error no se produce.01 en 0 (cero)....Close Next End Sub El siguiente código recorre todos los elementos de una matriz e introduce en cada uno de ellos el valor de la variable índice I.Caption Then frm. Sub RedondeoACero() For Each miObjeto in miColeccion If Abs(miObjeto. I As Variant For Each I In PruebaMatriz PruebaMatriz(I) = I Next I Recorrer un conjunto de celdas Se puede usar el bucle For Each.... el siguiente procedimiento cierra todos los formularios excepto el que contiene al procedimiento que se está ejecutando..Next antes de que finalice Se puede salir de un bucle For Each.Next para recorrer las celdas pertenecientes a un rango determinado. Por ejemplo. la instrucción If…Then…Else es False y el bucle se seguirá ejecutando normalmente..Next mediante la instrucción Exit For.

. Para disminuir la variable contador es preciso especificar un valor final que sea menor que el valor inicial. total representa la suma de 16.. En el siguiente ejemplo. 8. se puede aumentar o disminuir la variable contador en el valor que se desee. la variable contador miNum se disminuye en 2 cada vez que se repite el bucle. Sub NuevoTotal() For miNum = 16 To 2 Step -2 total = total + miNum Next miNum MsgBox "El total es " & total End Sub . 10. 4 y 2. 12. 8 y 10.. la variable contador j se incrementa en 2 cada vez que se repite la ejecución del bucle. La instrucción Next incrementa el valor de la variable contador en 1. 4. En el siguiente ejemplo. total representa la suma de 2. Cuando el bucle deja de ejecutarse. 6. Los bucles For usan una variable contador cuyo valor se aumenta o disminuye cada vez que se ejecuta el bucle. La instrucción For determina la variable contador x y sus valores inicial y final.Next c End Sub Utilizar instrucciones For. Cuando termina la ejecución del bucle. 14. Sub DosTotal() For j = 2 To 10 Step 2 total = total + j Next j MsgBox "El total es " & total End Sub Para disminuir la variable contador utilice un valor negativo en Step. 6.. Sub Bips() For x = 1 To 50 Beep Next x End Sub Mediante la palabra clave Step. El siguiente procedimiento hace que el equipo emita un sonido 50 veces.Next Las instrucciones For.Next se pueden utilizar para repetir un bloque de instrucciones un número determinado de veces.

es preciso utilizar la sintaxis de múltiples líneas.Else anidadas.Font.....Else se pueden anidar en tantos niveles como sea necesario..Next antes de que el contador alcance su valor final. El siguiente ejemplo muestra la sintaxis de línea única. para ello se utiliza la instrucción Exit For.Then.Else. Si el error no se produce.Nota No es necesario incluir el nombre de la variable contador después de la instrucción Next. Sin embargo. Se puede abandonar una instrucción For...Else o Select Case que detecte específicamente ese error. el nombre de la variable contador se ha incluido para facilitar la lectura del código.....Then. la instrucción If…Then…Else es False y el bucle continuará ejecutándose normalmente...Then. en la que se omite el uso de la palabra clave Else: Sub FijarFecha() miFecha = #13/2/95# If miFecha < Now Then miFecha = Now End Sub Para ejecutar más de una línea de código.. dependiendo del valor de una condición..Then.Then...Else para ejecutar una instrucción o bloque de instrucciones determinadas. Las instrucciones If..Then. Utilizar instrucciones If.ForeColor = Aviso.Bold = Aviso. Ejecutar una sola instrucción cuando una condición es True Para ejecutar una sola instrucción cuando una condición es True....Else Se puede usar la instrucción If.Italic End If End Sub Long) "Red" True = True ... En los ejemplos anteriores. tal y como muestra el siguiente ejemplo: Sub AvisoUsuario(valor as If valor = 0 Then Aviso. Esta sintaxis incluye la instrucción End If.Font. para hacer más legible el código es aconsejable utilizar una instrucción Select Case en vez de recurrir a múltiples niveles de instrucciones If.. Por ejemplo. si se produce un error se puede usar la instrucción Exit For en el bloque de instrucciones True de una instrucción If. se puede usar la sintaxis de línea única de la instrucción If...

.Italic Else Aviso.Font.. Mientras que las instrucciones If..Else para definir dos bloques de instrucciones ejecutables: un bloque que se ejecutará cuando la condición es True y el otro que se ejecutará si la condición es False.Else para comprobar una segunda condición si la primera es False. La instrucción que sigue a la instrucción Else sólo se ejecuta cuando las condiciones de todas las restantes instrucciones If y ElseIf son False. Sub AvisoUsuario(valor as If valor = 0 Then Aviso....Then.Font.Else cuando se compara una expresión con varios valores diferentes. salario) If rendimiento = 1 Then Bonificación = salario * 0..Bold = Aviso.Font.Font...Forecolor = Aviso.Then.Italic End If End Sub Long) vbRed True = True vbBlack False = False Comprobar una segunda condición si la primera condición es False Se pueden añadir instrucciones ElseIf a una instrucción If.Bold = Aviso. el siguiente procedimiento función calcula una bonificación salarial dependiendo de la clasificación del trabajador. Por ejemplo.Else pueden comparar una expresión distinta para cada instrucción ElseIf. ..07 Else Bonificación = 0 End If End Function Utilizar instrucciones Select Case La instrucción Select Case se utiliza como alternativa a las instrucciones ElseIf en instrucciones If.....ForeColor = Aviso.Then.1 ElseIf rendimiento = 2 Then Bonificación= salario * 0. Function Bonificación(rendimiento.. la instrucción Select Case compara únicamente la expresión que evalúa al comienzo de la estructura de control.09 ElseIf rendimiento = 3 Then Bonificación = salario * 0.Then.Ejecutar unas instrucciones determinadas si una condición es True y ejecutar otras si es False Use una instrucción If..

Font . Sub RangoFormato() With Worksheets("Hoja1").Value = 30 .Name = "Arial" . 3 Bonificación = salario Case 4 To 6 Bonificación = salario Case Is > 8 Bonificación = 100 Case Else Bonificación = 0 End Select End Function salario) * 0.Font. 255. 1) . Observe que cada instrucción Case puede contener más de un valor.1 * 0. La instrucción opcional Case Else se ejecuta si la instrucción Select Case no encuentra ninguna igualdad con los valores de la instrucciones Case.Color = RGB(255. o una combinación de valores y operadores de comparación.Bold = True .Interior. la instrucción Select Case evalúa el argumento rendimiento que se pasa al procedimiento. Function Bonificación(rendimiento.Worksheets("Hoja1"). Select Case rendimiento Case 1 Bonificación = salario Case 2. El siguiente ejemplo inserta una formula en la celda A1 y selecciona a continuación el tipo de letra. una gama de valores.Cells(1. El siguiente ejemplo introduce en un rango de celdas el número 30. Sub MiEntrada() With Workbooks("Libro1").Formula = "=SQRT(50)" With . Las instrucciones With aceleran la ejecución de los procedimientos y ayudan a evitar el tener que escribir repetidas veces las mismas palabras.09 * 0. 0) End With End Sub Las instrucciones With se pueden anidar para aumentar su eficiencia.07 Utilizar instrucciones With La instrucción With permite especificar una vez un objeto o tipo definido por el usuario en una serie entera de instrucciones. aplica a esas celdas un formato en negrita y hace que su color de fondo sea el amarillo.Range("A1:C10") .En el siguiente ejemplo.Bold = True .

.Size = 8 End With End With End Sub .

En el siguiente ejemplo. El segundo procedimiento presenta un cuadro de mensaje en blanco ya que la variable strMensaje es local para el primer procedimiento. Sub VariableLocal() Dim strMensaje As String strMensaje = "Esta variable no se puede usar fuera de este procedimiento. la variable de cadena strMensaje está disponible para cualquier procedimiento definido en el módulo.Comprender el alcance y la visibilidad El alcance se refiere a la disponibilidad de una variable. es aconsejable colocar la palabra clave Private delante del nombre de la variable para que el alcance sea evidente al leer el código. constante. Cuando se llama al segundo procedimiento. Definir el alcance de un nivel de procedimiento Una variable o constante definida desde dentro de un procedimiento no es visible fuera de ese procedimiento. El alcance de una variable se determina cuando se declara. En el siguiente ejemplo. el primer procedimiento presenta un cuadro de mensaje que contiene una cadena de texto. es aconsejable declarar todas las variables explícitamente para evitar errores de conflicto de nombres entre variables que tiene alcances distintos. Las variables públicas están disponibles para todos los procedimientos de todos los módulos de un proyecto. o procedimiento para ser usado por otro procedimiento. Las variables de nivel de módulo pueden ser públicas o privadas. Las variables declaradas con la instrucción Dim en la sección Declarations tiene un alcance privado a no ser que se especifique otra cosa. Sin embargo. nivel de módulo privado y nivel de módulo público. Hay tres niveles de alcance: nivel de procedimiento. Sólo el procedimiento que contiene la declaración de la variable puede usarlos. las variables privadas sólo están disponibles para los procedimientos de ese módulo. . presenta el contenido de la variable de cadena strMensaje en un cuadro de dialogo." MsgBox strMensaje End Sub Sub FueraAlcance() MsgBox strMensaje End Sub Definir el alcance de nivel de módulo privado Se pueden definir variables y constantes de nivel de módulo en la sección Declarations de un módulo.

debe declarar explícitamente con la palabra clave Private si no desea que sean públicos." End Sub Sub UsaVariablePrivada() MsgBox strMensaje End Sub Nota Los procedimientos públicos de un módulo estándar o módulo de clase están disponibles para cualquier proyecto de referencia al proyecto actual. excepto en el caso de los procedimientos evento. Para los restantes procedimientos. añada una instrucción Option Private Module a la sección Declarations del módulo. Sin embargo. Cuando Visual Basic crea un procedimiento evento. pero no lo estarán para los proyectos que a los que puedan hacer referencia. ya que estos módulos son privados para el proyecto en el que residen. la variable de cadena strMensaje se puede usar en cualquier procedimiento de un módulo del proyecto. Public strMensaje As String Todos los procedimientos son públicos a menos que se especifique lo contrario. estará disponible para todos los procedimientos del mismo proyecto. Las variables y procedimientos públicos seguirán estando disponibles para los restantes procedimientos del proyecto actual. ' Incluya esto en la sección Declarations del módulo. Comprender la vida de las variables . Definir el alcance de nivel de módulo público Si se declara una variable de nivel de módulo como pública. variables y constantes públicas definidas en módulos que no sean estándar o de clase. Para limitar el alcance de todos los procedimientos de un módulo al proyecto actual. no están disponibles desde los proyectos que hacen referencia al actual. la palabra clave Private se inserta automáticamente antes de la declaración del procedimiento. Private strMensaje sAs String Sub InicializaVariablePrivada() strMensaje = "Esta variable no se puede usar fuera de este módulo. En el siguiente ejemplo.' Añada lo siguiente a la sección de Declarations del módulo. Se pueden usar procedimientos. como pueden ser los módulos de formulario o módulos de informe. variables y constantes públicas definidas en módulos estándar o módulos de clase de proyectos que hagan referencia al actual. es preciso establecer una referencia al proyecto en que están definidos. Los procedimientos.

Comprender la sintaxis de Visual Basic En la sección de Ayuda de Visual Basic correspondiente a un método. sea cual sea el módulo. Cada uno de los elementos de una variable de tipo definido por el usuario se inicializa como si se tratase de una variable independiente. Su vida es la misma que la de una variable de nivel de módulo. instrucción o procedimiento Function la sintaxis muestra todos los elementos necesarios para utilizar . Las variables numéricas se inicializan a cero. los valores de todas las variables de nivel de procedimiento del procedimiento se conservarán entre las sucesivas llamadas. En un módulo estándar o un módulo de clase. Las variables Variant se inicializan a Empty. la variable pierde su alcance y su valor. Una variable de nivel de procedimiento declarada mediante la instrucción Dim conserva su valor hasta que el procedimiento termina de ejecutarse. Cuando todo el código ha terminado de ejecutarse. conserva su valor hasta que se termina de ejecutar el código. pero conserva algún valor. Si el procedimiento llama a otros procedimientos. pero se le da el valor Nothing hasta que se le asigne una referencia a objeto mediante la instrucción Set. En un módulo de clase conserva su valor mientras exista una definición de la clase. Si se incluye la palabra clave Static antes de una instrucción Sub o Function. ya no tiene ningún valor. Una variable de nivel de módulo es distinta a una variable estática. El valor de la variable puede cambiar durante su vida. conserva su valor de inicialización hasta que pierda alcance. se reserva el espacio correspondiente en memoria. o Chr(0). se inicializan todas las variables. Cuando se declara una variable de objeto. la variable conserva su valor también mientras se ejecutan esos procedimientos. Si el valor de una variable no cambia durante la ejecución del código. Si una variable de nivel de procedimiento de declara con la palabra clave Static. Cuando una variable pierde su alcance.El tiempo durante el que una variable conserva su valor se conoce como vida. la variable conserva su valor mientras haya código en ejecución. las cadenas de longitud variable se inicializan a una cadena vacía de longitud cero ("") y una cadena de longitud fija se llena con los caracteres correspondientes al código ASCII 0. Las variables de nivel de módulo consumen memoria hasta que sus valores se vuelven a inicializa. Cuando un procedimiento comienza a ejecutarse. por eso sólo se deben utilizar cuando sea necesario.

las palabras en cursiva y negrita son argumentos con nombre de la función."Cuadro de Respuesta" Para especificar un argumento mediante su nombre basta con usar el nombre del argumento seguido de dos puntos y un signo igual (:=) y el valor del argumento. (No escriba los corchetes en el código de Visual Basic). no deben incluirse los paréntesis. el único argumento que se debe incluir es el texto de la pregunta. Los argumentos con nombre se pueden especificar en cualquier orden. Dado que se utiliza el valor que . Los argumentos para funciones y métodos se pueden especificar en el código mediante su posición o por su nombre. la palabra "objeto" en cursiva es la posición reservada para la información que introduce el usuario — en este caso. Por ejemplo. código que devuelve un objeto.correctamente ese método. siga el orden que se indica en la sintaxis. por ejemplo: MsgBox "¡Su respuesta es correcta!". Estas funciones y métodos devuelven valores. separando los argumentos con una coma. archivoayuda. Las palabras que se muestran en negrita deben escribirse exactamente tal y como se indica. el siguiente procedimiento activa la segunda ventana en el documento activo. Los métodos que no devuelven valores no necesitan que sus argumentos aparezcan encerrados entre paréntesis. Los ejemplos siguientes explican como deben interpretarse los elementos sintácticos más comunes. Estas normas son aplicables tanto si se usan argumentos posicionales o nominativos. el valor que devuelve la función MsgBox es un número que indica el botón seleccionado almacenado en la variable miVar. instrucción o función. Los argumentos que aparecen entre corchetes son opcionales. Para especificar argumentos mediante su posición. contexto]) En la sintaxis de la función MsgBox. Sintaxis del método Activate objeto. título] [. por ejemplo: MsgBox Title:="Cuadro de Respuesta". Sub Activar() Windows(2). En el caso de la función MsgBox. Si se ignora el valor de retorno o si no se pasan argumentos en forma alguna. botones] [. por eso deben encerrarse los argumentos entre paréntesis al asignar un valor a una variable.0.Activate En la sintaxis del método Activate.Activate End Sub Sintaxis de la función MsgBox MsgBox(texto[. Prompt:="¡Su respuesta es correcta!" La sintaxis de las funciones y algunos métodos muestran los argumentos entre paréntesis. En el siguiente ejemplo.

a x e y se les asigna el tipo de datos Variant. En la sintaxis de la instrucción Dim. nombrevariable[([subscriptos])] [As tipo]] . Dim miVar. la siguiente instrucción especifica que dentro del módulo. es preciso utilizar paréntesis.". _ Title:="Cuadro de respuesta". Otro cuadro de mensaje presenta entonces en pantalla el valor de la variable. debe incluirse el tipo de datos para cada variable.devuelve la función. terceraVar El siguiente ejemplo declara una variable como String. Estas variables se declaran automáticamente como Variant. Por ejemplo. . (No escriba las llaves en la instrucción de Visual Basic). siguienteVar. la palabra Dim es una palabra clave exigida. la siguiente instrucción crea tres variables: miVar. y As Integer. z As Integer En la siguiente instrucción. Dim miRespuesta As String Para declarar varias variables en una instrucción. Las variables declaradas sin un tipo de datos se declaran automáticamente como Variant. z As Integer . Option Compare Text Sintaxis de la instrucción Dim Dim nombrevariable[([subscriptos])] [As tipo] [. Buttons:="4") MsgBox miVar End Sub Sintaxis de la instrucción Option Option Compare {Binary | Text | Database} En la sintaxis de la instrucción Option Compare. Dim x. las cadenas se comparan en un criterio de ordenación que no depende del mayúsculas o minúsculas. Sólo a z se le asigna el tipo de datos Integer. Al incluir un tipo de datos se ahorra memoria y se pueden evitar errores en el código. El único elemento necesario es nombrevariable (el nombre de la variable). siguienteVar y terceraVar. Dim x As Integer. y. Sub Pregunta() miVar = MsgBox(Prompt:="Me gusta mi trabajo. . Por ejemplo. las llaves y la línea vertical indican una elección obligatoria entre tres opciones.

Por ejemplo: . todo ello seguido por el valor del argumento.Print strNombre. todos separados por comas. deben incluirse los paréntesis. PasaArgs intEdad:=29. 29. intEdad As Integer. Dim miMatriz() Comprender los argumentos con nombre y opcionales Cuando se hace una llamada a un procedimiento Sub o Function. Los subscriptos son opcionales. dteNacimiento As Date) Debug. strNombre:="Maria" Un argumento nominativo está formado por el nombre del argumento seguido por dos puntos y un signo igual (:=). Los argumentos con nombre son muy útiles cuando se llama a procedimientos con argumentos opcionales. miMatriz. en el orden en que aparecen en la definición del procedimiento. es decir. se pueden incluir argumentos de forma posicional. En la definición del procedimiento se puede especificar también un valor predefinido para el argumento opcional. Por ejemplo. Al usar argumentos con nombre es más fácil controlar qué argumentos se pasan y cuáles se omiten.Si se declara una variable matriz. dteNacimiento End Sub Al llamar este procedimiento se pueden incluir sus argumentos en la posición correcta. tal y como muestra el siguiente ejemplo: PasaArgs "María". el siguiente procedimiento Sub acepta tres argumentos: Sub PasaArgs(strNombre As String. La siguiente instrucción define las dimensiones de una matriz dinámica. separados por comas. o se pueden incluir los argumentos con su nombre sin respetar ningún orden. intEdad. Los argumentos opcionales van precedidos por la palabra clave Optional en la definición del procedimiento. Si se usan argumentos con nombre no será necesario incluir sucesivas comas para sustituir argumentos posicionales ausentes. dteNacimiento:=#21/2/69#. #21-2-69# También se puede hacer una llamada a este procedimiento e incluir argumentos con nombre.

Los valores numéricos Variant ocupan 16 bytes de memoria (lo que sólo es significativo en procedimientos grandes o módulos complejos) y son más lentos a la hora de su acceso que las variables de tipo explícito de los restantes tipos.Sub ArgsOpcionales(strProvincia As String. se usará el valor predefinido si existe. Es muy raro utilizar el tipo de datos Variant para una constante. la variable varPais. ArgsOpcionales strPais:="MÉXICO". strProvincia:="SE" ArgsOpcionales strProvincia:= "SE". Optional intRegion As Integer. intRegion:=5 Comprender los tipos de datos Variant El tipo de datos Variant se especifica automáticamente si no se especifica otro tipo de datos al declarar una constante. Las variables declaradas como del tipo de datos Variant pueden contener valores numéricos. o argumento. intRegion ElseIf IsMissing(intRegion) Then Debug. . Si no se ha especificado tampoco un valor predefinido. strPais End If End Sub Este procedimiento se puede llamar empleando argumentos con nombre tal y como muestran los siguientes ejemplos. cadenas de texto. El siguiente procedimiento incluye un argumento opcional. fecha. Si no se especifica. La función IsMissing determina si se ha pasado o no un argumento opcional al procedimiento. Optional strPais As String = "MÉXICO") .Print strProvincia. se puede optar por especificar o no el argumento opcional. el argumento tendrá el valor de inicialización que le corresponda a una variable del mismo tipo. variable. End Sub Cuando se hace una llamada a un procedimiento con un argumento opcional. Sub ArgsOpcionales(strProvincia As String. hora o Booleans y pueden convertir los valores que contienen de forma automática. _ Optional strPais As String = "MÉXICO") If IsMissing(intRegion) AND IsMissing(strPais) Then Debug. . Los valores de cadena Variant necesitan 22 bytes de memoria. Las siguientes instrucciones crean variables Variant: . strPais Else Debug.Print strProvincia ElseIf IsMissing(strPais) Then Debug.Print strProvincia.Print strProvincia. intRegion.

Sugerencia Si se especifica un tipo de datos para una variable o argumento y a continuación se utiliza un tipo erróneo de datos.Close End Sub El siguiente procedimiento utiliza un nombre especificado como cadena para identificar un objeto Form. métodos y eventos Un objeto representa un elemento de una aplicación.Close End Sub . Sub CierraForm() Forms("MiForm. Por ejemplo. pero no siempre.Dim miVar Dim tuVar As Variant laVar = "Esto es un texto. Sub CierraPrimero() Libro(1). En Microsoft Excel. el objeto Workbooks contiene todos los objetos Workbook abiertos. Libro(1) identifica al primer objeto Workbook abierto. Los elementos de una colección se pueden identificar mediante su número o su nombre. Comprender objetos. son del mismo tipo. un diagrama." La última instrucción no declara explícitamente la variable laVar. como una hoja de cálculo. en el siguiente procedimiento. sino que la declara implícitamente. En código de Visual Basic. una celda. se producirá un error de tipo de datos. Para evitar errores de tipo de datos. Las variables que se declaran implícitamente se especifican como del tipo de datos Variant. un formulario o un informe. por ejemplo. propiedades. o automáticamente. El último método es el preferible. se deben usar sólo variables (del tipo de datos Variant) o declarar explícitamente todas las variables y especificar para ellas un tipo de datos. la colección Forms contiene todos los objetos Form existentes en una aplicación.frm"). En Visual Basic. un objeto debe identificarse antes de se pueda aplicar uno de los métodos del objeto o cambiar el valor de una de sus propiedades. Una colección es un objeto que contiene varios objetos que normalmente.

se cambia el valor de sus propiedades Para dar valor a una propiedad. o un aspecto de su comportamiento.También es posible operar al mismo tiempo sobre toda una colección de objetos siempre que los objetos compartan métodos comunes. Los eventos pueden ocurrir como resultado de una acción del usuario o del código de l programa.Add nuevoElemento End Sub Propiedad es un atributo de un objeto que define una de las características del objeto. Sub CierraTodos() Forms. . El siguiente procedimiento utiliza un cuadro de diálogo para presentar el título que aparece en la parte superior del formulario activo en ese momento.Caption MsgBox formNombre End Sub Evento es toda acción que puede ser reconocida por un objeto. Por ejemplo. después el nombre de la propiedad y finalmente el signo igual (=) y el nuevo valor de la propiedad.Close End Sub Método es toda acción que puede realizar un objeto. por ejemplo si está visible o activado. el siguiente procedimiento cierra todos los formularios abiertos. color o localización en la pantalla.Caption = nuevoTitulo End Sub Hay propiedades a las que no se puede dar valor. como puede ser el clic del mouse o la pulsación de una tecla y para la que es posible escribir código como respuesta. El siguiente procedimiento utiliza el método Add para añadir un nuevo elemento a un ComboBox. el siguiente procedimiento cambia el título de un formulario de Visual Basic dando un valor a la propiedad Caption. también pueden ser originados por el sistema. tal como su tamaño. El tema de ayuda de cada propiedad indica si es posible leer y dar valores a la propiedad (lectura/escritura). Se puede obtener información sobre un objeto devolviendo el valor de una de sus propiedades. Sub CambiaNombre(nuevoTitulo) miForm. Por ejemplo. hay que colocar un punto detrás de la referencia a un objeto. Add es un método del objeto ComboBox ya que sirve para añadir un nuevo elemento a un cuadro combinado. Sub AñadeElemen(nuevoElemento as String) Combo1. Para cambiar las características de un objeto. leer sólo el valor de la propiedad (sólo lectura) o sólo dar valor a la propiedad (sólo escritura). Por ejemplo.ActiveForm. Sub NombreFormEs() formNonmbre = Screen.

Si desea más información. Integer. por ello debe consultar el tema de ayuda correspondiente al objeto o colección que está usando en la aplicación para determinar la forma de devolver el objeto. Para declarar una constante pública a nivel de módulo. a menos que se especifique lo contrario. La instrucción Const se utiliza para declarar una constante y darle valor. El siguiente ejemplo declara la constante Public EdadCon como un Integer y le asigna el valor 34. Date. la instrucción Const debe ir precedida por la palabra clave Public. en la sección de Declarations. Public Const EdadCon As Integer = 34 Las constantes se pueden declarar de uno de los siguientes tipos de datos: Boolean. Dado que ya se conoce el valor de una constante. debe incluirse el tipo de datos para cada constante. Se puede declarar una constante dentro de un procedimiento o al principio de un módulo. se puede asignar a un valor un nombre que tenga algún significado apropiado. En la siguiente instrucción se declaran como Integer las constantes EdadCon y SalarioCon. consulte la sección "Comprender el alcance y la visibilidad" en la Ayuda de Visual Basic. Byte. Long. Si desea más información sobre tipos de datos. Se puede declarar explícitamente una constante como privada colocando la palabra clave Private antes de la instrucción Const para facilitar la lectura y comprensión del código. consulte la sección "Tipo de datos Summary" en la Ayuda de Visual Basic. Single. o Variant. Sin embargo estos procedimientos no son siempre iguales. Una constante no puede modificarse o cambiar de valor una vez que ha sido declarada. En una sola instrucción se pueden declarar varias constantes. String. SalarioCon As Currency = 35000 Declarar matrices .Devolver objetos Cada aplicación tiene una forma de devolver los objetos que contiene. Para especificar un tipo de datos. es muy fácil elegir el tipo de datos en la instrucción Const. Las constantes a nivel de módulo son privadas. Double. Const EdadCon As Integer = 34. Currency. Declarar constantes Al declarar una constante.

ReDim MiMatrizInteger(10) As Integer ' Una matriz Double-precision utiliza 88 bytes (11 elementos * 8 bytes). Declarar una matriz fija En la siguiente línea de código se declara como matriz Integer una matriz de tamaño fijo con 11 filas y 11 columnas: Dim MiMatriz(10. ReDim MiMatrizDoble(10) As Double ' Una matriz Variant utiliza al menos 176 bytes (11 elementos * 16 bytes). Las siguientes líneas de código comparan el tamaño de varias matrices: ' Una matriz Integer utiliza 22 bytes (11 elementos * 2 bytes). Si una matriz se indexa desde 0 ó desde 1 depende del valor de la instrucción Option Base. La diferencia entre las variables escalares (aquellas que no son matrices) y las variables matriz es que normalmente se debe especificar el tamaño de la matriz. Una matriz con un tamaño especificado es una matriz de tamaño fijo. ReDim MiMatrizVariant(10) ' La matriz Integer utiliza 100 * 100 * 2 bytes (20. Como sucede en cualquier otra declaración de variable. Private.000 bytes). 99) . Static. los elementos de ésta serán del tipo Variant.000 bytes (100 * 100 * 16 bytes). utilizando instrucciones Dim. ReDim MiMatrizInteger(99. 99) As Integer ' La matriz Double-precision utiliza 100 * 100 * 8 bytes (80.000 bytes). todos los índices de matrices comienzan en cero. debe declarar explícitamente sus matrices con un tipo de datos distinto a Variant. 10) As Integer El primer argumento corresponde al número de filas y el segundo al número de columnas. Una matriz cuyo tamaño puede cambiar mientras el programa se está ejecutando es una matriz dinámica. Si Option Base 1 no se especifica. Cada elemento numérico Variant de la matriz utiliza 16 bytes. ReDim MiMatrizDoble (99. o Public.Las matrices se declaran igual que las restantes variables. Para escribir código de la forma más compacta posible. a menos que se especifique para la matriz un tipo de datos. Cada elemento de cadena Variant utiliza 22 bytes. ReDim MiMatrizVariant(99. 99) As Double ' La matriz Variant utiliza al menos 160.

Es más lento utilizar una matriz que sobrepasa la cantidad de memoria RAM disponible en el sistema ya que los datos tienen que ser leídos y escritos del disco. sólo se puede cambiar el límite superior de la última dimensión.El tamaño máximo de una matriz depende del sistema operativo y de la cantidad de memoria disponible. definir el número de elementos y para definir los límites superior e inferior para cada dimensión. Para declarar una matriz dinámica se usan las instrucciones Static. La instrucción de declaración puede incluirse en un procedimiento para crear una variable de nivel de procedimiento. cada vez que se hace. Por ejemplo. Dim. La instrucción ReDim se puede utilizar en un procedimiento. Tenga cuidado para no cambiar el nombre de la matriz cuando use la instrucción ReDim. se pierden los valores almacenados en la matriz. Dim NombreTexto As String . El siguiente ejemplo crea la variable NombreTexto y específicamente le asigna el tipo de datos String. para crear una variable de nivel de módulo. Se puede usar la instrucción ReDim para modificar la matriz dinámica cuantas veces sea necesario. no pudiendo modificarse el número de dimensiones. tal y como se muestra en el siguiente ejemplo. o Public. Sin embargo. Se puede usar la instrucción ReDim Preserve para ampliar una matriz conservando los valores que contiene. ReDim Preserve MatrizVar(UBound(MatrizVar) + 10) Nota Cuando se utiliza la palabra clave Preserve con una matriz dinámica. Declarar una matriz dinámica Al declarar una matriz dinámica se puede cambiar el tamaño de una matriz mientras que el código se está ejecutando. Dim MatrizSingle() As Single Nota Se puede usar la instrucción ReDim para declarar implícitamente una matriz dentro de un procedimiento. para cambiar el número de dimensiones. ya que se creará una segunda matriz incluso en el caso de que se haya incluido la instrucción Option Explicit en el módulo. Private. la siguiente instrucción añade 10 nuevos elementos a la matriz MatrizVar sin perder los valores almacenados en los elementos originales. dejando los paréntesis vacíos. dentro del alcance de la matriz. Declarar variables Para declarar variables se utiliza normalmente una instrucción Dim. O puede colocarse al principio de un módulo. en la sección Declarations.

String * longitud (para cadenas de longitud fija). Single. Dim intX. En la siguiente instrucción se declaran las variables intX. Si no se especifica el tipo de datos. intZ As Integer En la siguiente instrucción. . puede consultar la sección "Visual Basic Naming Rules" en la Ayuda de Visual Basic. Si se omite. Las variables se pueden declarar como de uno de los siguientes tipos de datos: Boolean.Si esta instrucción aparece dentro de un procedimiento. Si la instrucción aparece en la sección Declarations del módulo. Para hacer que esta variable esté disponible para todos los procedimientos de un proyecto. e intZ como del tipo Integer. pero para los restantes módulos del proyecto. la variable será del tipo Variant. Se pueden declarar varias variables en una instrucción. Si desea más información sobre tipos de datos puede consultar la sección "Tipo de datos Summary" en la Ayuda de Visual Basic. el tipo de datos Variant es el predefinido. Integer. la variable NombreTexto se puede usar sólo en ese procedimiento. intZ As Integer No es necesario especificar el tipo de datos en la instrucción de declaración. intY. también se podrá usar en los proyectos referenciados por el proyecto en que se declara la variable pública. basta con comenzar la declaración con la instrucción Public. intY As Integer. Para especificar el tipo de datos se debe incluir un tipo de datos para cada variable. Public NombreTexto As String Las variables públicas se pueden usar en cualquier procedimiento del proyecto. Date. tal y como muestra el siguiente ejemplo: Public NombreTexto As String Si desea más información sobre cómo dar nombre a sus variables. la variable NombreTexto estará disponible en todos los procedimientos dentro del módulo. Object. Currency. También es posible crear un tipo definido por el usuario empleando la instrucción Type. intY. o Variant. String (para cadenas de longitud variable). Utilizar la instrucción Public La instrucción Public se puede utilizar para declarar variables públicas de nivel de módulo. Double. Long. intX e intY se declaran como del tipo Variant. Byte. y sólo intZ se declara como del tipo Integer. Dim intX As Integer. Si una variable pública se declara en un módulo estándar o en un módulo de clase.

Consulte la documentación de su aplicación para encontrar la forma de modificar las opciones de entorno de Visual Basic. Su aplicación será más eficiente si se declaran explícitamente las variables y se les asigna un tipo de datos específico. puede incluir en un módulo la instrucción Option Explicit antes de todos los procedimientos. Sería aconsejable usar la instrucción Private para facilitar la lectura y comprensión del código. Si un módulo incluye la instrucción Option Explicit. Tenga en cuenta que esta opción no tiene ningún efecto sobre el código que se haya escrito con anterioridad. Todas las variables que se definen implícitamente son del tipo Variant. Una vez que se ha . Private MiNombre As String Las variables Private pueden ser usadas únicamente por procedimientos pertenecientes al mismo módulo.Utilizar la instrucción Private La instrucción Private se puede usar para declarar variables privadas de nivel de módulo. Nota Las matrices fijas y dinámicas siempre se tiene que declarar explícitamente. la instrucción Dim es equivalente a la instrucción Private. Las variables del tipo Variant consumen más recursos de memoria que la mayor parte de las otros tipos de variables. Si no desea que Visual Basic realice declaraciones implícitas. se producirá un error en tiempo de compilación cuando Visual Basic encuentre un nombre de variable que no ha sido previamente declarado. Declarar una variable de objeto para automatización Cuando se utiliza una aplicación para controlar los objetos de otra aplicación. debe establecerse una referencia a la biblioteca de tipos de la otra aplicación. Utilizar la instrucción Option Explicit En Visual Basic se puede declarar implícitamente una variable usándola en una instrucción de asignación. Utilizar la instrucción Static Cuando se utiliza la instrucción Static en lugar de la instrucción Dim. Nota Cuando se utiliza a nivel de módulo. la variable declarada mantendrá su valor entre llamadas sucesivas. Se puede seleccionar una opción del entorno de programación de Visual Basic para incluir automáticamente la instrucción Option Explicit en todos los nuevos módulos. Esta instrucción exige que todas las variables del módulo se declaren explícitamente. Al declararse explícitamente las variables se reduce la posibilidad de errores de nombres y el uso de nombres erróneos. o cuyo nombre se ha escrito incorrectamente.

Sub Pregunta() Dim suNombre As String suNombre = InputBox("¿Cómo se llama?") MsgBox "Su nombre es " & suNombre End Sub . Sin embargo. El siguiente ejemplo asigna el valor que devuelve la función InputBox a la variable suNombre. Por ejemplo.Application") Para determinar la sintaxis a utilizar con una aplicación determinada debe consultarse la documentación de la aplicación. Si se utiliza otra aplicación para controlar objetos de Microsoft Access. incluso después de establecer una referencia a la biblioteca de tipos de Microsoft Access.Form Algunas aplicaciones no reconocen algunos de los tipos de objetos de Microsoft Access. es posible. si desde Microsoft Word se establece una referencia a la biblioteca de tipos de Microsoft Excel.establecido la referencia. Se puede usar también la palabra clave New para crear automáticamente una nueva definición de un objeto. Dim appAccess As Object Set appAccess = CreateObject("Access. Escribir instrucciones de asignación Las instrucciones de asignación asignan un valor o expresión a una variable o constante. Para ello se incluye el nombre de la biblioteca de tipos en la declaración de la variable. Tampoco puede usarse la palabra clave New para crear una nueva definición del objeto. Las instrucciones de asignación incluyen siempre un signo igual (=). en la mayor parte de los casos. debe distinguirse entre el objeto Form de Microsoft Access y un objeto Form de Visual Basic. será necesario declarar todas las variables objeto de Microsoft Access como del tipo Object. puede ser necesario indicar que se trata de un objeto Microsoft Access. se pueden declarar variables de objeto conforme a su tipo más específico. se puede declarar una variable del tipo Worksheet desde Microsoft Word para representar un objeto Worksheet de Microsoft Excel. El siguiente ejemplo muestra cómo declarar una variable que represente una nueva definición del objeto Application de Microsoft Access desde una aplicación que no reconoce los tipos de objeto de Microsoft Access. La aplicación crea entonces una nueva definición del objeto Application. declarar variables objetos del tipo más específico. como muestra el siguiente ejemplo: Dim frmPedidos As New Access. En ese caso. Por ejemplo. cuando se declara una variable de objeto para representar un formulario de Microsoft Access desde Microsoft Visual Basic.

Cuando se declara un procedimiento.Bold = True Escribir instrucciones de declaración Las instrucciones de declaración se usan para dar nombre y definir procedimientos. la instrucción Set asigna un rango de Hoja1 a la variable de objeto miCelda: Sub DarFormato() Dim miCelda As Range Set miCelda = Worksheets("Hoja1"). El siguiente ejemplo asigna la propiedad Bold del objeto Font para la celda activa: ActiveCell.Font .La instrucción Let es opcional y normalmente se omite. Por ejemplo.Bold = True . Todas las instrucciones que aparecen entre las instrucciones Sub y End Sub se ejecutan cuando el procedimiento DarFormato se ejecuta o se llama. variables. la instrucción de asignación anterior podría haberse escrito así: Let suNombre = InputBox("¿Cómo se llama?"). variable o constante.Range("A1") With miCelda.  Escribir un procedimiento Sub . La palabra clave Set es necesaria. Sub DarFormato() Const limite As Integer = 33 Dim miCelda As Range ' Mas instrucciones End Sub La instrucción Sub (con la correspondiente instrucción End Sub) declara un procedimiento llamado DarFormato.Italic = True End With End Sub Las instrucciones que establecen valores propiedad son también instrucciones de asignación. El siguiente ejemplo contiene tres declaraciones. En el siguiente ejemplo. matrices y constantes. también se define su alcance que depende del lugar en que se coloque la declaración y de las palabras clave que se usan para ello.Font. La instrucción Set se utiliza para asignar un objeto a una variable que ha sido declarada como objeto.

El tipo de datos es objeto. que inician acciones.La instrucción Const declara la constante limite. Se puede declarar una variable que sea cualquiera de los objetos que están accesibles a la aplicación que se está usando. ' le asigna el valor Juan y a continuación . Puede incluir palabras clave. Otras palabras clave utilizadas en las declaraciones son ReDim. Escribir instrucciones de asignación  Las instrucciones ejecutables. Las instrucciones ejecutables a menudo contienen operadores condicionales o matemáticas. pero puede continuarse en la siguiente utilizando un carácter de continuación de línea. Las instrucciones Dim son un tipo de instrucción que se utiliza para declarar variables.  Declarar variables Escribir instrucciones de Visual Basic Una instrucción de Visual Basic es una instrucción completa. Public. la instrucción ejecutable MsgBox se extiende por las tres líneas que le siguen: Sub CuadroDemo() 'Este procedimiento declara una variable de cadena. En el siguiente ejemplo. en este caso. que asignan un valor o expresión a una variable o constante. variables. operadores. Todas las instrucciones pertenecen a una de las tres categorías siguientes:  Las instrucciones de declaración. constante o procedimiento y pueden también especificar su tipo de datos. constantes y expresiones. un objeto Range de Microsoft Excel. Private y Const. Static. Escribir instrucciones de declaración  Las instrucciones de asignación. Estas instrucciones pueden ejecutar un método o función y pueden saltar a o evitar bloques de código. que dan nombre a una variable. especificando el tipo de datos Integer y un valor de 33. Escribir instrucciones ejecutables Continuar instrucciones en múltiples líneas Una instrucción cabe normalmente en una línea.  Declarar constantes La instrucción Dim declara la variable miCelda.

Escribir instrucciones ejecutables Una instrucción ejecutable inicia una acción. color predefinido. debe averiguar cuál es el problema en esa instrucción y corregirlo.Cells If c. El siguiente ejemplo utiliza la instrucción For Each.Next para pasar por cada una de las celdas de un rango llamado MiIntervalo en la Hoja1 de un libro Microsoft Excel activo.' presenta en pantalla un mensaje concatenado. seguido por el comentario. Las líneas de comentario comienzan por un apóstrofe (') o con la palabra clave Rem seguida por un espacio y puede colocarse en cualquier lugar del procedimiento. _ Buttons:=vbExclamation End Sub Añadir comentarios Los comentarios pueden explicar un procedimiento o una instrucción en particular a cualquier persona que tenga que leer el código.. debe insertarse un apóstrofe después de esta. Visual Basic ignora los comentarios cuando ejecuta los procedimientos.Range("MiIntervalo"). Para añadir un comentario a la misma línea que ocupa una instrucción. Puede ejecutar un método o función y saltar a bloques de código o no ejecutar otros. Comprobar errores de sintaxis Si se presiona la tecla ENTRAR después de escribir una línea de código y la línea aparece en pantalla en color rojo (puede que aparezca también un mensaje de error). Las instrucciones ejecutables incluyen a menudo operadores condicionales o matemáticos.Italic = True End With End If Next c MsgBox "¡Fin!" End Sub .Bold = True .Value > limite Then With c.Font . Sub DarFormato() Const limite As Integer = 33 For Each c In Worksheets("Hoja1"). Los comentarios aparecen en pantalla en color verde. _ Title:="Cuadro de saludo". La variable c es una celda en la colección de celdas que componen MiIntervalo.. Dim miVar As String miVar = "Juan" MsgBox Prompt:="Hola " & myVar.

Else del ejemplo comprueba el valor de la celda. como pueden ser constantes.". Un procedimiento Function acepta argumentos.Then. Las instrucciones If.32) * 5 / 9 End Function Escribir un procedimiento Sub . Un procedimiento Function es similar a un procedimiento Sub... variables o expresiones que le pasa el procedimiento que efectúa la llamada." End Sub Function Celsius(GradosF) Celsius = (GradosF .. introduzca la temperatura en grados F. la instrucción With establece las propiedades Bold e Italic del objeto Font para esa celda. la instrucción Function debe incluir un par de paréntesis vacíos.La instrucción If. La instrucción Next llama a la siguiente celda de la colección de celdas contenida en MiIntervalo. La instrucción With puede evitar que haya que escribir muchas veces las mismas palabras ya que las instrucciones que contiene se ejecutan automáticamente en el objeto que sigue a la palabra clave With.. Sub Principal() temp = Application. Cuando se llama a la función desde el procedimiento Principal. En el siguiente ejemplo.InputBox(Texto:= _ "Por favor. Escribir un procedimiento Function Un procedimiento Function es una serie de instrucciones de Visual Basic encerradas entre dos instrucciones Function y End Function.Else acaban con una instrucción End If. El resultado de los cálculos se devuelve al procedimiento que efectúo la llamada y se presenta en un cuadro de mensaje.... la función Celsius calcula grados centígrados a partir de grados Fahrenheit. se le pasa una variable que contiene el valor del argumento.Then. Una función devuelve un valor asignándolo a su nombre en una o más instrucciones del procedimiento. La función MsgBox (que presenta en pantalla un cuadro de diálogo de Visual Basic) presenta un mensaje indicando que el procedimiento Sub ha terminado de ejecutarse. Si el valor es mayor de 33.. Tipo:=1) MsgBox "La temperatura es " & Celsius(temp) & " grados C. Si un procedimiento Function no tiene argumentos. aunque una función puede devolver además un valor.

como constantes. pasando como argumento el valor 56.. escriba el nombre del procedimiento e incluya valores para todos los argumentos requeridos.Un procedimiento Sub es una serie de instrucciones Visual Basic. Si un procedimiento Sub no tiene argumentos.. que realizan acciones específicas pero no devuelven ningún valor...Then." Else ' Función MsgBox concatenada con la variable respuesta MsgBox Prompt:="Su nombre es " & respuesta ' Fin de la instrucción If. En el siguiente ejemplo.. El siguiente procedimiento Sub dispone de comentarios explicativos en cada línea.Then. Se puede utilizar un procedimiento Sub para organizar otros procedimientos de forma que sean más fáciles de entender y depurar.Else End If ' Fin del procedimiento Sub End Sub Llamar a procedimientos Sub y Function Para efectuar una llamada a un procedimiento Sub desde otro procedimiento. variables o expresiones que le pasa el procedimiento que ha efectuado la llamada. la instrucción Sub debe incluir un par de paréntesis vacío. cuando el usuario hace clic en Aceptar. ' Declara un procedimiento llamado ObtenInformacion ' Este procedimiento Sub no acepta argumentos Sub ObtenInformacion() ' Declara una variable de cadena llamada respuesta Dim respuesta As String ' Asigna el valor que devuelve la funcion InputBox a la variable respuesta respuesta = InputBox(Prompt:="¿Cómo se llama?") ' Instrucción condicional If. encerradas entre un par de instrucciones Sub y End Sub. pero si la utiliza. No es necesaria una instrucción Call. el control vuelve a Principal y Principal llama al procedimiento Sub Mensaje.. el procedimiento Sub Principal efectúa una llamada al procedimiento Sub MultiBeep.Else If respuesta = Empty Then ' Llama a la función MsgBox MsgBox Prompt:="No ha escrito su nombre... Un procedimiento Sub puede aceptar argumentos. Sub Principal() MultiBeep 56 Mensaje End Sub . los argumentos deben aparecer encerrados entre paréntesis. Después de que MultiBeep acaba su ejecución. el control vuelve a Principal y Principal termina. Mensaje presenta en pantalla un cuadro de mensaje.

5 * salario <= 0. Sub Principal() CalcuCasa 99800. la instrucción puede producir un error de sintaxis. 49500) End Sub Sub CalcuCasa(precio As Single. tal y como muestra el siguiente ejemplo." End If End Sub Utilizar paréntesis al efectuar llamadas a procedimientos Function Para utilizar el valor que devuelve una función debe asignar la función a una variable y encerrar los argumentos entre paréntesis. 43100 Call CalcuCasa(380950. es necesario utilizar paréntesis a ambos lados de los argumentos ya que se utiliza la instrucción Call. "Pregunta 3") Si no está interesado en el valor que devuelve una función. incluya una lista de argumentos y no asigne la función a una variable. La segunda vez que se llama a CalcuCasa. Transferir argumentos con nombre Una instrucción de un procedimiento Sub o Function puede pasar valores a los procedimientos que llama mediante argumentos con nombre. 0. "Cuadro de tarea" Precaución Si en el ejemplo anterior se incluyen paréntesis. Respuesta3 = MsgBox("¿Está contento con su salario?". Los argumentos con nombre . 4.8 * precio Then MsgBox "No puede permitirse esta casa. puede efectuar la llamada a la función de la misma forma que si llamara a un procedimiento Sub." Else MsgBox "Esta casa está a su alcance.Sub MultiBeep(númbips) For contador = 1 To númbips Beep Next contador End Sub Sub Mensaje() MsgBox "¡Es hora de descansar!" End Sub Llamar a procedimientos Sub con más de un argumento El siguiente ejemplo muestra dos formas de llamar a un procedimiento Sub con más de un argumento. MsgBox "¡Tarea concluida!". No utilice los paréntesis. todo ello como muestra el siguiente ejemplo. salario As Single) If 2.

El valor que devuelve la función se asigna a la variable respuesta3. constantes. o una instrucción o método.Left. El siguiente ejemplo efectúa una llamada a la función MsgBox utilizando argumentos con nombre que no devuelven ningún valor. respuesta3 = MsgBox(Titulo:="Pregunta 3". Por ejemplo. instrucciones y métodos de Visual Basic. signos de interjección (!). Como regla general. si utiliza una variable llamada Left. Sin embargo.pueden aparecer en cualquier orden. MsgBox Titulo:="Cuadro de tarea". &. la única forma de utilizar la función Left es escribiendo VBA. Para utilizar una función intrínseca del lenguaje. Los nombres no se pueden repetir dentro del mismo nivel de alcance.). el nombre de la biblioteca de tipos asociada. $. instrucción o método. Al final puede terminar usando las mismas palabras clave que utiliza el lenguaje. Botones:=4) Reglas de asignación de nombres en Visual Basic Para dar nombre a procedimientos. cuyo nombre coincide con uno de los nombres asignados. se puede declarar una variable privada edad y una variable de nivel de procedimiento llamada edad dentro del mismo módulo. Un argumento con nombre se compone del nombre del argumento seguido por dos puntos y un signo igual (:=) y el valor asignado al argumento. puntos (. El nombre no puede tener más de 255 caracteres de longitud. Para ello se sitúa delante del nombre de la función intrínseca. variables y argumentos en un módulo de Visual Basic han de seguirse las siguientes reglas:   El primer carácter debe ser una letra. Por ejemplo. no se pueden declarar dos variables con el nombre edad dentro del mismo procedimiento. es preciso identificarlos explícitamente. #. _ Mensaje:="¿Está satisfecho con su salario?". Mensaje:="¡Tarea concluida!" El siguiente ejemplo llama a la función MsgBox empleando argumentos con nombre.    . no se deben usar nombres iguales a los de los procedimientos Function. ni los caracteres @. En el nombre no se pueden utilizar espacios.

.Nota Visual Basic no diferencia entre mayúsculas y minúsculas. pero respeta la forma en que se escriben las instrucciones de declaración de nombres.