Macros/Calc/ba021/es
TDF LibreOffice en español Document Liberation Project Blogs comunitarios Weblate Nextcloud Redmine Preguntas y respuestas Donar
Resumen:
Esta página proporciona un procedimiento de macro de LibreOffice Basic que crea intervalos con nombre a partir de etiquetas. Es un ejemplo extraído del Capítulo 13 ("Calc como base de datos") de la Guía de Calc 7.0.
Descripción
Además de utilizar el diálogo Crear nombres (al que se accede seleccionando
▸ ▸ en la barra de menú), los intervalos con nombre se pueden generar a partir de etiquetas mediante la macro addNewFromTitles:- addNewFromTitles(Origen, Borde)
- Crea intervalos con nombre a partir de encabezados de columna o fila. Este método tiene dos argumentos:
- Origen: la dirección del intervalo de celdas del intervalo con nombre que se va a crear.
- Borde: es un valor de enumeración que especifica la ubicación de las etiquetas de encabezado. Esta enumeración tiene uno de los cuatro valores posibles, enumerados en la siguiente tabla:
Enumerador | Descripción |
---|---|
TOP | Selecciona la fila del borde superior. |
BOTTOM | Selecciona la fila del borde inferior. |
RIGHT | Selecciona la columna del borde derecho. |
LEFT | Selecciona la columna del borde izquierdo. |
La siguiente macro crea tres intervalos con nombre usando encabezados de la fila superior del rango de celdas A1: C20. Los intervalos resultantes aparecerán en el cuadro de diálogo Administrar nombres, al que se puede acceder seleccionando ▸ ▸ en la barra de menú o presionando Ctrl+F3.
Código
Sub AddManyNamedRanges()
Dim oSheet 'Hoja que contiene el intervalo con nombre
Dim oAddress 'Dirección del intervalo
Dim oRanges 'La propiedad NamedRanges (nombres de intervalos).
Dim oRange 'Intervalo de una sola celda
oRanges = ThisComponent.NamedRanges
oSheet = ThisComponent.getSheets().getByIndex(0)
oRange = oSheet.getCellRangeByName("A1:C20")
oAddress = oRange.getRangeAddress()
oRanges.addNewFromTitles(oAddress, com.sun.star.sheet.Border.TOP)
End Sub
Esta Hoja de cálculo Calc contiene el código de LibreOffice Basic anterior.