Función personalizada (UDF) para extraer los números de una cadena de texto (string)

Como ya habéis visitado (leído, estudiado y practicado) el artículo “Recursos para comenzar a programar con LibreOffice BASIC” de este mismo blog, o bien, ya tenéis conocimientos del lenguaje de programación LibreOffice Basic, vamos a crear una UDF (macro) que extraiga todos los números del 0 al 9 de una cadena de texto contenida en una celda de Calc (imagen 1).

Imagen 1: Función personalizada (UDF) EXTRAER_NUMEROS

Pero, ¿qué es una UDF?. Una UDF es una función definida por el usuario (en inglés User-Defined Function). Esta función la crea el usuario de una aplicación informática para personalizar, en la medida de lo posible, unas determinadas operaciones o resultados, ya que, ninguna de las funciones que de forma predeterminada vienen con la aplicación se ajusta a las necesidades surgidas en un momento dado. Se utiliza exactamente igual que cualquier otra función que traiga Calc “de fábrica”.

Cuando se trabaja con macros hay que “avisar” a LibreOffice de la seguridad que queremos tener respecto de esas macros, a través del menú Herramientas > Opciones > Seguridad (imagen 2). Normalmente se elige un nivel medio porque así tenemos libertad de decidir qué macro se ejecuta o qué macro no (imagen 3).

Imagen 2: Menú Herramientas > Opciones > Seguridad > Seguridad de macros...

Cuando abrimos un archivo que contiene macros nos aparece una ventana (imagen 3) preguntando si queremos activar o no las macros. Obviamente, si desactivamos las macros no podremos hacer uso de ellas. Sólo debemos activar las macros de fuentes fiables.

Imagen 3: Activar macros

 Para ver el código fuente de esta función personalizada seleccionaremos el menú Herramientas > Macros > Organizar macros > BASIC ... (imagen 4).

Imagen 4: Menú Herramientas > Macros > Organizar macros > BASIC ...

En el cuadro de diálogo que aparece seleccionaremos el “Module1” de la biblioteca “Standard” del nuestro archivo de prácticas y pincharemos en el botón “Editar” (imagen 5).

Imagen 5: Seleccionamos la macro a editar ...

Y nos aparece el IDE (Integrated Development Environment, Entorno Integrado de Desarrollo) de LibreOffice Basic (imagen 6) donde hemos escrito, probado y depurado nuestra función personalizada.

Imagen 6: Entorno Integrado de Desarrollo de LibreOffice Basic

Las líneas de color verde son comentarios que el intérprete de LibreOffice BASIC no tiene en cuenta. Las palabras de color azul son palabras reservadas del lenguaje (una constante, variable u objeto no puede llamarse igual que una palabra reservada). Los números y las cadenas de texto aparecen con otros colores. Todos los colores son personalizables (imagen 7).

Imagen 7: Menú Herramientas > Opciones … > Colores de la aplicación

Para saber más hay que visitar la Ayuda de LibreOffice Basic:

Ya lo dijo Platón: “El que aprende y aprende y no practica lo que sabe es como el que ara y ara y no siembra". Así que ya sabéis, practicad.

Podéis ver otras dos UDF en el artículo LibreOffice Calc: casos prácticos (VIII) de la revista EnRed@2.0 del IAAP (Instituto Andaluz de Administración Pública) de la Junta de Andalucía.

Como siempre, muchas gracias por vuestra atención y saludos cordiales.

LibreOffice Community ver.7.6.7.2 (X86_64 es-ES) Windows 11


Se puede descargar el archivo de prácticas aquí.

Comentarios

Entradas populares de este blog

Calcular el día del año de una efeméride

Celdas enlazadas (Datos ► Validez...)