Calc. Borrar hojas.
Cuando el docap basado en Calc contiene una serie de hojas que nos interesan en un determinado momento, pero que resultan innecesarias una vez aplicado, resulta conveniente borrar las que no sean necesarias.
En este caso, siguiendo a Mauricio Baeza (1), para borrar hojas disponemos de la función removeByName(Nombre), que contiene el parámetro Nombre, lo que indica que el borrado está determinado por la identificación del nombre de la hoja. Un ejemplo
Sub BorrarHojaNombreDim oHojas As ObjectoHojas = ThisComponent.getSheets()oHojas.removeByName( "HojaFinal" )End Sub
Como puedes imaginar, no es posible borrar una hoja que no exista (hacerlo provoca error del sistema), por lo que es conveniente controlar que se cumple dicha condición mediante un condicional asociado al método oHojas.hasByName().
También podemos borrar la hoja activa, en la que previamente deberemos estar situados.
Sub BorrarHojaActivaDim oHojas As ObjectDim oHojaActiva As ObjectoHojaActiva = ThisComponent.getCurrentController.getActiveSheet()oHojas = ThisComponent.getSheets()oHojas.removeByName( oHojaActiva.getName() )End Sub
Dado que un libro debe contener al menos una hoja, si sólo tiene una o si hemos borrado previamente todas las anteriores, al intentar borrar esa única hoja el sistema dará error.
Podemos controlar ambos errores (nombre de hoja inexistente o intento de borrado de hoja única) introduciendo las siguientes instrucciones en un condicional:
If oHojas.hasByName( sNombre ) And oHojas.getCount()>1 Then
oHojas.removeByName( sNombre )
Else
MsgBox "La hoja no existe o solo queda una"
End If
NOTAS
(1) Mauricio Baeza Servin (2007). Aprendiendo LibreOffice Basic. Documento modificado en septiembre de 2014.