Funciones Definidas por el Usuario (FDU)
alemanborTutorial2 de Septiembre de 2014
10.101 Palabras (41 Páginas)433 Visitas
Funciones Definidas por el Usuario (FDU)
Por
Raúl Adrián Colazo
A Manera de Prólogo
El presente trabajo se realizó con mucho esfuerzo y dedicación, con el fin de afianzar conocimientos en aquellas personas que optaron por la gratificante labor de realizar sus funciones en el entorno de programación Visual Basic For Application residente en Microsoft Excel.
Con el a fin de presentar una gran variedad de ejemplos prácticos, recopilados a lo largo de varios años, he tratado de presentar ejercicios provechosos.
Me agradaría el hecho de que este material se difunda, siempre y cuando se respete el derecho de autor.
Solo me queda agradecer a Rodolfo Laria, por su desinteresada colaboración y a Uds. desearles la mejor de las suertes en el aprendizaje de Microsoft Excel.
Chamical - La Rioja - Argentina, Octubre de 2004.-
Adrián Colazo
Introducción
Esta obra se concentrará en realizar funciones personalizadas, desarrollando casos que prestarán utilidad, además de familiarice con el entorno de trabajo Microsoft Visual Basic For Application que Excel incluye.
Al proporcionar código fuente se intercalarán temas teóricos para una mejor comprensión, explicando cada ejemplo con el objeto de que se pueda seguir y reproducir.
La idea central es que es crear funciones con instrucciones y opciones poco difundidas, que darán a sus funciones un toque profesional.
Resulta necesario que el lector posea conocimiento básicos de VBA y con ganas de incrementar vuestra inteligencia.
Objetivos
Principal
• Crear una serie de módulos clasificados con distintas funciones personalizadas.
Secundarios
• Implementar soluciones mediante programación en el entorno Visual Basic For Application.
• Manejar las diferentes propiedades de distintos los objetos de Excel.
• Añadir módulos a su VBAProject.
• Emplear las funciones e instrucciones de VBA para obtener sus resultados.
• Dar un aspecto profesional a sus funciones.
Diferencia entre Función y Procedimiento
Una función (Function) es un código creado por un usuario que devuelve un valor, es un cálculo preprogramado que se puede realizar bajo petición desde una hoja Excel.
Las funciones contienen un par de paréntesis (según el lenguaje) en donde se especifican los argumentos. Los argumentos (o parámetros), son valores sobre los que actúa una función, una función, puede tener varios o ninguno. Por ultimo una función permite asignar valores a una(s)
celda(s) o variable(s).
Un procedimiento es una serie de instrucciones que funcionan como una unidad, una subrutina (Sub), un procedimiento también puede tener argumentos, pero no puede asignar valores a una(s) celda(s) o variable(s).
En resumen una función devuelve un valor y un procedimiento o subrutina no.
Veamos como crear una función que sume solo dos valores en distintos lenguajes.
C++
int suma(int a, int b){
return a + b;
}
FoxPro
Function Suma
Parameter a, b
Return a + b
End Function
Nuestro querido Visual Basic For Application
Function Suma(a As Integer, b As Integer) As Integer
Suma = a + b
End Function
Como podemos ver en cualquier lenguaje una función siempre devuelve un valor, el cual es asignado a una variable o devuelto a otra función, etc.
Como podemos apreciar en el último código en Visual Basic For Application a una función comienza con la instrucción Function seguida del nombre de la función, seguidamente entre paréntesis se declara los argumentos (que pueden o no estar presente), su tipo y separados por comas, le indicamos el tipo de valor a devolver inmediatamente después de la declaración de sus argumentos (seguida al paréntesis que cierra) con As tipo a devolver, debajo va el cuerpo de la función. Cuando asignamos un valor al nombre de la función le indicamos que devuelva ese valor, puede existir más de una asignación de valores a la función.
Consideraciones
Cabe destacar que una función no puede generarse por medio del Grabador de macros de Excel, es por ello que es fundamental aprender conceptos básicos.
Vamos a convenir que al finalizar cada ejercicio se explicará el funcionamiento funciones y/o instrucciones utilizadas, sino se detallan es por que en ejercicios anteriores ya se explicaron.
Antes de empezar con la elaboración de nuestras funciones realizamos lo siguiente: del menú principal, (del Editor) escogemos las opciones Herramientas / Opciones..., en la ficha Editor marcamos la casilla de verificación “Requerir declaración de variables”, esto se realizará por única vez.
Antes de empezar con cada módulo e introducirnos al código puro, pondremos debajo de Option Explicit, Option Compare Text, que establece que en la comparación de cadenas de texto no se distinga entre mayúsculas y minúsculas, por debajo de ésta instrucción escribir Option Base 1, que se utiliza a nivel de módulo para declarar el límite inferior predeterminado para subíndices de matriz (Rango, Matriz, Vector).
Para una mejor comprensión de las instrucciones que cabe normalmente en una línea, se continúa en el renglón de abajo, utilizando un carácter de continuación de línea, “ _ “.
Cuando se introduzca una función por primera vez se la hará manualmente y escrita en mayúsculas, esto es para que la próxima vez que se la convoque, escrita de cualquier forma, se vuelva su nombre en mayúsculas, es decir que se comporte como las funciones de Excel.
Dejamos a vuestra consideración incorporar la instrucción Application.Volatile (True) que va al principio de cada función personalizada, cuyo objetivo es, si toma el valor True, volver a calcularse siempre que se efectúe un cálculo y/o modificación en cualquier celda de la hoja donde se insertó la función personalizada.
Una función no volátil (Application.Volatile (False)) solo se recalcula cuando cambia su valores de entrada.
La ejemplificación de las funciones creadas se realiza separando los argumentos por punto y coma, y se recalca que esto puede variar en cada Excel por que depende de la configuración de Windows (u otro Sistema Operativo); Panel de Control / Configuración / Ficha Número – Separador de Listas.
Las funciones que se desarrollarán en este presente trabajo están probadas en Microsoft Excel 2000 y Microsoft Excel 2002. En versiones superiores a las mencionadas debe aplicarse sin inconvenientes.
Llamaremos a este libro Mis Funciones.
Se va la primera...
Para realizar una función personalizada debemos guardar nuestro archivo Excel (xls) y entrar al Editor de Visual Basic, para ello tomamos las opciones del menú principal de Excel:
Herramientas / Macro / Editor de Visual Basic, o simplemente utilizamos el atajo por teclado,
presionemos Alt + F11.
Se abre una nueva ventana, es el Editor de Visual Basic, allí realizaremos nuestras funciones personalizadas.
Dentro del Editor de Visual Basic vemos a la izquierda un panel llamado: Proyecto - VBAProject, en este panel podemos ver el nombre de nuestro libro entre otros datos.
Ahora insertaremos un módulo para programar la función, tomemos del menú del Editor de Visual Basic, Insertar / Módulo, se crea en nuestro proyecto una carpeta llamada módulos, dentro de ella vemos módulo1, presionamos F4, aparece un cuadro con la propiedad del módulo uno, modificamos su propiedad name, le asignamos FuncionesTexto (así todo junto), pues es el módulo con las funciones de manejo de texto, que pertenecen a nuestro proyecto. Cerramos la ventana de propiedades
En el panel de la derecha apareció On Explicit, que obliga al programador declarar las variables con la instrucción Dim, cabe recordar que de acuerdo al tipo de dato es el tamaño
de almacenamiento, ver en la ayuda del Editor de VB, en la ficha Contenido - Tipo de Datos.
...