Manual VBA Excel

Page 55

Function masaAluminio(ParamArray volumen() As Variant)

Almacenará los argumentos de la función en un array llamado volumen(). Fíjese en que hemos omitido el tipo de dato que devuelve la función, ya que por defecto es Variant. Definido el argumento, es necesario averiguar el número de parámetros pasados a la función. De ello se encarga la función UBound(nombreArgumento). Por ejemplo, teniendo en cuenta la función anterior y dada la fórmula =masaAluminio(3;6;34;6), entonces UBound(volumen()) devolverá 4. Conocido el número de argumentos almacenados en el array, es fácil recorrerlos con un bucle For y tratarlos según corresponda. Veamos el ejemplo siguiente: dados varios volúmenes de aluminio, calcula su masa total conocida de antemano su densidad. La fórmula que se va a aplicar es masa=densidad*volumenTotal. Function masaAluminio(ParamArray volumen() As Variant) ‘Inicializa las variables Dim dAluminio, volumenTotal As Double Dim n, x As Integer dAluminio = 2.7 ‘densidad del aluminio volumenTotal = 0 ‘Extrae el número de argumentos de la función n = UBound(volumen()) ‘Calcula la suma total de volumen de aluminio For x = 0 To n volumenTotal = volumenTotal + volumen(x) Next ‘Si no hay argumentos devuelve un error ‘en caso contrario calcula la fórmula If volumenTotal = 0 Then masaAluminio = “Error” Else masaAluminio = volumenTotal * dAluminio End If End Function

Queda para el lector comprobar que todos los argumentos sean numéricos y devolver un error en caso contrario. Igual que en los trucos anteriores, debe escribir este código en el editor de Basic y posteriormente puede probar la función creando una fórmula en la hoja de cálculo. Por ejemplo =masaAluminio(100;550;450;600) devolverá 4.590. Utilizar una función personalizada desde otro libro Las funciones definidas anteriormente sólo funcionarán en el libro donde las ha creado, así que deberá utilizar lo visto anteriormente para exportarlas a modulos .BAS o guardarlas como complementos .XLA

Centro de Formación solucion.es

pág. 55


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.