Formato de filas y columnas

From Apache OpenOffice Wiki
< ES‎ | Manuales‎ | GuiaAOO‎ | TemasAvanzados‎ | Macros‎ | StarBasic‎ | TrabajandoConCalc‎ | DandoFormato
Revision as of 16:56, 18 March 2013 by Salva (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Editing.png Esta página está en estado borrador.

Para establecer la altura de las filas, usamos la propiedad Height, el valor se establece en centésimas de milímetros, por lo que para tener una fila de 0.50 cm le asignamos un valor de 500 como en el siguiente ejemplo.


 Sub FormatoFilas1()
 Dim oSel As Object
 
     oSel = ThisComponent.getCurrentSelection()
 
     'Establecemos el alto de las filas seleccionadas
     oSel.getRows.Height = 500
 
 End Sub


Cuando tratas de establecer la altura de las filas en cero (0), si bien no te dará ningún error, tampoco veras ningún cambio, aun, estableciendo el valor en la unidad veras que la fila sigue siendo notable. Si lo que deseas es ocultarla, es mejor usar la propiedad correspondiente, para este caso, IsVisible, como en.


 Sub FormatoFilas2()
 Dim oSel As Object
 
     oSel = ThisComponent.getCurrentSelection()
 
     'Ocultamos las filas seleccionadas
     oSel.getRows.IsVisible = False
 
 End Sub


Esta propiedad se establece en falso (false) para ocultar la fila y en verdadero (true) para mostrarla, el siguiente ejemplo te alternara en ocultar y mostrar conforme la ejecutes.


 Sub FormatoFilas3()
 Dim oSel As Object
 
     oSel = ThisComponent.getCurrentSelection()
     'Alternamos entre visible y oculta
     oSel.getRows.IsVisible = Not oSel.getRows.IsVisible
 
 End Sub


Las filas, adquieren una propiedad particular cuando se les aplica un filtro, esta propiedad se llama IsFiltered, y te devolverá verdadero (true), cuando la fila consultada este oculta como consecuencia de un filtro, toma nota de que “solo” cuando este oculta por un filtro, si tu la ocultas con IsVisible, esta propiedad (IsFiltered) seguirá siendo falsa (false), prueba a hacer un filtro en tu hoja activa y procura que la fila consultada (getByIndex(Indice)) este filtrada.


 Sub FormatoFilas4()
 Dim oHojaActiva As Object
 
     oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
     'Consultamos si la fila 3 esta filtrada
     MsgBox oHojaActiva.getRows.getByindex(2).IsFiltered
 
 End Sub


También podemos establecer el alto óptimo de las filas con la propiedad OptimalHeight, debe estar en verdadero (true) para que tenga efecto.


 Sub FormatoFilas5()
 Dim oSel As Object
 
     oSel = ThisComponent.getCurrentSelection()
     'Establecemos el alto optimo de las filas seleccionadas
     oSel.getRows.OptimalHeight = True
 
 End Sub


A las filas también es posible cambiarles el color de fondo, esto nos permite establecer el color de toda la fila.


 Sub FormatoFilas6()
 Dim oSel As Object
 
     oSel = ThisComponent.getCurrentSelection()
     'Establecemos el color de fondo de las celdas de la fila completa
     oSel.getRows.CellBackColor = RGB(200,200,200)
 
 End Sub


La siguiente macro te cambiara el color de las filas impares de la selección.


 Sub FormatoFilas7()
 Dim oSel As Object
 Dim co1 As Long
 
     oSel = ThisComponent.getCurrentSelection()
 
     For co1 = 0 To oSel.getRows.getCount() - 1 Step 2
         'Establecemos un color aleatorio para las filas impares de la selección
         oSel.getRows.getByIndex( co1 ).CellBackColor = RGB( Rnd()*255,Rnd()*255,Rnd()*255 )
     Next
 
 End Sub


A las columnas también les podemos establecer el ancho.


 Sub FormatoColumnas1()
 Dim oSel As Object
 
     oSel = ThisComponent.getCurrentSelection()
 
     'Establecemos el ancho de las columnas seleccionadas
     oSel.getColumns.Width = 1000 
 
 End Sub


Y ocultarlas.


 Sub FormatoColumnas2()
 Dim oSel As Object
 
     oSel = ThisComponent.getCurrentSelection()
 
     'Ocultamos las columnas seleccionadas
     oSel.getColumns.IsVisible = False
 
 End Sub


Ajustar al contenido.


 Sub FormatoColumnas3()
 Dim oSel As Object
 
     oSel = ThisComponent.getCurrentSelection()
 
     'Ajustamos al contenido
     oSel.getColumns.OptimalWidth = True
 
 End Sub


Las columnas no tienen una propiedad IsFiltered, por que como sabes, no hay filtros horizontales, pero con un poco de ingenio y usando la propiedad IsVisible, puedes crearte tu versión de filtros horizontales. Tampoco puedes usar la propiedad CellBackColor para establecer el color de fondo, pero también podemos implementar nuestra versión, aquí una primera aproximación.


 Sub FormatoColumnas4()
 Dim oSel As Object
 Dim oCursor As Object
 
     oSel = ThisComponent.getCurrentSelection()
     'Nos apoyamos en un cursor
     oCursor = oSel.getSpreadSheet.createCursorByRange( oSel )
     oCursor.expandToEntireColumns()
     oCursor.CellBackColor = RGB(210,210,210)
 
 End Sub


La siguiente macro, establecerá el ancho de las columnas en 1 cm, después el alto de las filas también en 1 y coloreará alternadamente filas y columnas para hacer un lindo mosaico.


 Sub FormatoFilasColumnas1()
 Dim oSel As Object
 Dim oCursor As Object
 Dim co1 As Long
 
     oSel = ThisComponent.getCurrentSelection()
 
     oSel.getRows.Height = 1000
     oSel.getColumns.Width = 1000
 
     For co1 = 0 To oSel.getRows.getCount() - 1 Step 2
         oSel.getRows.getByIndex( co1 ).CellBackColor = RGB( 230,230,230 )
     Next
 
     For co1 = 0 To oSel.getColumns.getCount() - 1 Step 2
         oCursor = oSel.getSpreadSheet.createCursorByRange( oSel.getCellByPosition(co1,0) )
         oCursor.expandToEntireColumns()
         oCursor.CellBackColor = RGB(230,230,230)
     Next
 
 End Sub


Las filas y columnas cuentan con algunas propiedades involucradas en la impresión de los documentos, por lo que se verán en el capitulo correspondiente a impresión.



ES.Plantillas.Logo foro es.png
Si tienes dudas acerca de lo aquí explicado, tienes algún problema con AOO,
o quieres ampliar la información, no dudes en dirigirte al

Foro Oficial en español de Apache OpenOffice para Macros y API UNO

Personal tools