Bienvenido(a) a Alcance Libre 05/09/2025, 22:32
Nuestro buen amigo Mauricio Baeza nos envía un interesante artículo referente a las funciones personalizadas en LibreOffice.
Las más de trescientas funciones disponibles en LibreOffice Calc, nos dan una amplia gama de opciones para resolver una gran cantidad de problemas, pero, aun con esta cantidad, puede ser que no todas o la combinación de algunas, no resuelvan nuestras necesidades, en estos casos, podemos hacer nuestras propias funciones. La forma más sencilla es la siguiente, donde tenemos el nombre de la función y el tipo de valor que esperamos que retorne.
Option Explicit Function MiFuncion() As String MiFuncion = "Esta función no hace nada" End FunctionSi vas a la interfaz de Calc, ya puedes usar esta función:
Recuerda que una función, generalmente recibe unos datos llamados parámetros o argumentos, con estos datos, hacemos una serie de operaciones y regresamos el resultado como en el siguiente ejemplo:Function PerimetroCirculo( Radio As Single ) As Double Const PI As Single = 3.141592 PerimetroCirculo = ( 2 * Radio ) * PI End Function
Las funciones personalizadas son idóneas para reemplazar formulas grandes en Calc donde se usan varias funciones anidadas, por ejemplo, la siguiente formula, recibe una cantidad de días y nos devuelve el resultado en años, meses y días:
La formulas completa que no se alcanza a ver en la imagen anterior es:
=INT(A18/365.2)&" años, "&INT((A18-INT(A18/365.2)*365.2)/30.42)&" mes y "&INT(A18-(INT(A18/365.2)*365.2+INT((A18-INT(A18/365.2)*365.2)/30.42)*30.42))&" días"
Vamos a obtener el mismo resultado con la siguiente función personalizada:
Option Explicit Function AMD( Dias As Long ) As String Dim iAnos As Integer Dim iMeses As Integer Dim iDias As Integer Dim sTmp As String Const sAno As Single = 365.20 Const sMes As Single = 30.42 iAnos = Dias \ sAno Select Case iAnos Case 1 : sTmp = "1 año, " Case Else : sTmp = iAnos & " años, " End Select iMeses = ( Dias - ( iAnos * sAno ) ) \ sMes Select Case iMeses Case 1 : sTmp = sTmp & "1 mes y " Case Else : sTmp = sTmp & iMeses & " meses y " End Select iDias = Int( Dias - (( iAnos * sAno ) + (iMeses * sMes )) ) If iDias < 0 Then iDias = 0 Select Case iDias Case 1 : sTmp = sTmp & "1 día" Case Else : sTmp = sTmp & iDias & " días" End Select AMD = sTmp End FunctionY el resultado:
Como ves, no puede ser más sencillo.
¡Feliz programación!
Fuente: Universo Libre.
No hay seguimientos para esta entrada.
Los siguientes comentarios son de la persona que los haya enviado. Este sitio no se hace responsable de las opiniones expresadas por los participantes en los foros y secciones de comentarios, y el hecho de publicar las mismas no significa que esté de acuerdo con ellas.
Comments are closed and no new posts are allowed.
waauuu
Muy bueno, por lo que veo, es como si estuvieras programando en visual basic?
---
---Sabio no es aquel que dedica su vida a aprender sino el que la dedica a enseñar.
Sabio no es aquel que dedica su vida a aprender sino el que la dedica a enseñar.
Sabio no es aquel que dedica su vida a aprender sino el que la dedica a enseñar.
Hola Oscar...
Si, el LibOBasic es una implementación del añejo, fácil (y medio obsoleto) Basic, pero espera los siguiente artículos donde pasaremos a hacer cosas más interesantes pero con Python...
Saludos
---__________________________________________________
Todo cuando no podemos dar nos posee... Andre Gide
Todo cuando no podemos dar nos posee... Andre Gide