Programacion Vba Excel 2007

  • View
    1.244

  • Download
    3

Embed Size (px)

Text of Programacion Vba Excel 2007

IsNumeric (Funcin)Devuelve un valor de tipo Boolean que indica si una expresin se puede evaluar como un nmero. Sintaxis IsNumeric(expresin) El argumento expresin requerido, es un tipo de datos Variant que contiene una expresin numrica o una expresin de tipo cadena. Comentarios La funcin IsNumeric devuelve True si la expresin completa se reconoce como un nmero; en otro caso, devuelve False. La funcin IsNumeric devuelve False si expresin es una expresin de fecha.

Ejemplo de la funcin IsNumericEn este ejemplo se utiliza la funcin IsNumeric para determinar si una variable se puede evaluar como un nmero.

Dim MiVar, MiPrueba MiVar = "53" MiPrueba = IsNumeric(MiVar) MiVar = "459.95" MiPrueba = IsNumeric(MiVar) MiVar = "45 Help" MiPrueba = IsNumeric(MiVar)

' Asigna un valor. ' Devuelve True. ' Asigna valor. ' Devuelve True. ' Asigna valor. ' Devuelve False.

IsError (Funcin)Devuelve un valor de tipo Boolean que indica si una expresin tiene un valor de error. Sintaxis IsError(expresin) El argumento expresin requerido, puede ser cualquier expresin vlida. Comentarios Los valores de error se crean al convertir nmeros reales a valores de error utilizando la funcin CVErr. La funcin IsError se utiliza para determinar si una expresin numrica representa un error. La funcin IsError devuelve True si el argumento expresin indica un error; en caso contrario, devuelve False.

Ejemplo de la funcin IsErrorEn este ejemplo se utiliza la funcin IsError para verificar si una expresin numrica es un valor de error. La funcin se utiliza para devolver un Error Variant desde una funcin definida por el usuario. Se supone que FuncinUsuario es un procedimiento de funcin definida por el usuario que devuelve un valor de error; por ejemplo, devuelve un valor devuelto asignado con la instruccin FuncinUsuario = CVErr(32767), donde 32767 es un nmero definido por el usuario. Dim ValDevuelto, MiPrueba ValDevuelto = UserFunction() MiPrueba = IsError(ValDevuelto)

' Devuelve True.

IsEmpty (Funcin)Devuelve un valor de tipo Boolean que indica si una variable ha sido inicializada. Sintaxis IsEmpty(expresin) El argumento expresin requerido es un tipo de datos Variant que contiene una expresin de cadena o una expresin numrica. Sin embargo, ya que la funcin IsEmpty se utiliza para determinar si las variables individuales estn inicializadas, el argumento expresin es generalmente un nico nombre de variable. Comentarios La funcin IsEmpty devuelve True si la variable no est inicializada o est explictamente configurada a Empty; en cualquier otro caso, devuelve False. Se devuelve False siempre que expresin contenga ms de una variable. La funcin IsEmpty solamente devuelve informacin significativa para datos de tipo Variant.

Ejemplo de la funcin IsEmptyEn este ejemplo se utiliza la funcin IsEmpty para determinar si se ha inicializado o no una variable. Dim MiVar, MiPrueba MiPrueba = IsEmpty(MiVar)

' Devuelve True.

MiVar = Null ' Asigna Null. MiPrueba = IsEmpty(MiVar) ' Devuelve False. MiVar = Empty ' Asigna Empty. MiPrueba = IsEmpty(MiVar) ' Devuelve True.

Rnd (Funcin)Devuelve un tipo Single que contiene un nmero aleatorio. Sintaxis Rnd[(nmero)] El argumento opcional nmero es un tipo Single o cualquier expresin numrica vlida. Valores devueltos Si nmero es Menor que cero Rnd genera El mismo nmero todas las veces, utilizando nmero como valor de semilla. El siguiente nmero aleatorio de la secuencia. El nmero generado ms recientemente. El siguiente nmero aleatorio de la secuencia.

Mayor que cero Igual a cero No se especifica

Comentarios La funcin Rnd devuelve un valor menor que 1 pero mayor o igual que cero. El valor de nmero determina cmo la funcin Rnd genera un nmero aleatorio: Para cualquier valor de semilla inicial se genera la misma secuencia de nmeros. Esto es debido a que cada llamada sucesiva a la funcin Rnd usar el nmero anterior como valor de semilla para el siguiente nmero de la secuencia. Antes de llamar a la funcin Rnd, utilice la instruccin Randomize sin argumento para inicializar el generador de nmeros aleatorios con un valor de semilla basado en el reloj del sistema. Para producir enteros aleatorios en un intervalo dado, use esta frmula: Int((Lmite_superior - lmite_inferior + 1) * Rnd + lmite_inferior) Aqu, lmite_superior es el nmero mayor del intervalo y lmite_inferior es el nmero menor del intervalo.

Nota Para repetir secuencias de nmeros aleatorios, llame a la funcin Rnd con un argumento negativo antes de utilizar la funcin Randomize con un argumento numrico. Al utilizar la instruccin Randomize con el mismo valor de nmero no se repite la secuencia anterior.

Ejemplo de la funcin RndEn este ejemplo se utiliza la funcin Rnd para generar un valor entero aleatorio de 1 a 6. Dim MiValor MiValor = Int((6 * Rnd) + 1) entre 1 y 6.

' Genera un valor aleatorio

Randomize (Instruccin)Inicializa el generador de nmeros aleatorios. Sintaxis Randomize [nmero] El argumento opcional nmero es un tipo Variant o cualquier expresin numrica vlida. Comentarios La instruccin Randomize utiliza nmero para inicializar el generador de nmeros aleatorios de la funcin Rnd y le asigna un nuevo valor de semilla. Si omite nmero, el valor devuelto por el reloj del sistema se usa como el nuevo valor de semilla. Si no utiliza la instruccin Randomize, la funcin Rnd (sin argumentos) utiliza el mismo nmero como valor de semilla la primera vez que se la invoca, usando despus como valor de semilla el ltimo nmero generado. Nota Para repetir secuencias de nmeros aleatorios, llame a la funcin Rnd con un argumento negativo antes de utilizar la instruccin Randomize con un argumento numrico. Al utilizar la instruccin Randomize con el mismo valor de nmero no se repite la secuencia anterior.

Ejemplo de la instruccin RandomizeEn este ejemplo se utiliza la instruccin Randomize para inicializar el generador de nmeros aleatorios. Al omitirse el argumento nmero, Randomize utiliza el valor de retorno de la funcin Timer un nuevo valor de comienzo.

Dim MiValor Randomize aleatorios.

' Inicializa el generador de nmeros

MiValor = Int((6 * Rnd) + 1) entre 1 y 6.

' Genera valores aleatorios

Call (Instruccin)Transfiere el control a un procedimiento Sub, a un procedimiento Function o a un procedimiento biblioteca de vnculos dinmicos(DLL). Sintaxis [Call] nombre [listaargumentos] La sintaxis de la instruccin Call consta de las siguientes partes: Parte Call Descripcin Opcional; palabra clave. Si se especifica, listaargumentos se debe colocar entre parntesis. Por ejemplo: Call MiProced(0) nombre Requerido. Nombre del procedimiento al que se transfiere el control. Opcional. Lista de variables, matrices o expresiones delimitadas por comas, que se van a transferir al procedimiento. Los componentes de listaargumentos pueden incluir las palabras clave ByVal o ByRef para describir la forma en la que el procedimiento llamado trata los argumentos. Sin embargo, ByVal y ByRef se pueden utilizar con la instruccin Call solamente cuando se llama a un procedimiento de DLL. En Macintosh, ByVal y ByRef pueden utilizarse con Call cuando se realiza una llamada a un recurso del cdigo de Macintosh.

listaargumentos

Comentarios No es necesario que utilice la palabra clave Call cuando llama a un procedimiento. Sin embargo, si utiliza la palabra clave Call para llamar a un procedimiento que requiere los argumentos, listaargumentos debe estar entre parntesis. Si omite la palabra clave Call, debe omitir tambin los parntesis de listaargumentos. Si utiliza cualquiera de las formas de la sintaxis Call para llamar a cualquier funcin intrnseca o a una funcin definida por el usuario, se descartar el valor devuelto por la funcin. Para transferir una matriz completa a un procedimiento, utilice el nombre de la matriz seguida de parntesis vacos.

Ejemplo de la instruccin CallEn este ejemplo se ilustra cmo se utiliza la instruccin Call para transferir el control a un procedimiento Sub, una funcin intrnseca, y un procedimiento de biblioteca de vnculos dinmicos (DLL). Las DLL no se utilizan en Macintosh. ' Llama a un procedimiento Sub. Call PrintToDebugWindow("Hola") ' La instruccin anterior pasa el control al siguiente ' procedimiento Sub Sub PrintToDebugWindow(UnaCadena) Debug.Print UnaCadena ' Imprime en Inmediato. End Sub ' Llama a una funcin intrnseca. El valor devuelto por ' la funcin se descarta. Call Shell(NombreApl, 1) ' NombreApl contiene ' la ruta de acceso del ejecutable. ' Llama a un procedimiento de una DLL de Microsoft Windows. La instruccin Declare debe ' ser Private en un mdulo de clase, pero no es un mdulo estndar. Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer) Sub LlamamiDLL() Call MessageBeep(0) ' Llama al procedimiento de DLL. MessageBeep 0 ' Llama otra vez sin la palabra clave Call. End Sub

Function (Instruccin)Declara el nombre, los argumentos y el cdigo que componen el cuerpo de un procedimiento Function. Sintaxis [Public | Private | Friend] [Static] Function nombre [(lista_argumentos)] [As tipo] [instrucciones] [nombre = expresin] [Exit Function] [instrucciones] [nombre = expresin] End Function La sintaxis de la instruccin Function consta de las siguientes partes: Parte Public Descripcin Opcional. Indica que el procedimiento Function es accesible para todos los dems procedimientos de todos los mdulos. Si se utiliza en un mdulo que contiene Option Private, el procedimiento no estar disponible fuera del proyecto. Opcional. Indica que el procedimiento Function slo es accesible para otros procedimientos del mdulo donde se declara. Opcional. Se utiliza solamente en un mdulo de clase. Indica que el procedimiento Function es visible a travs del proyecto, pero no es visible para un controlador de una instancia de un objeto. Opcional. Indica que las variables locales del procedimiento Function se conservan entre las