Seleccionar celdas, rangos, rangos con nombre, filas o columnas desde una macro en Calc
Estas tres funciones que te presentamos te permiten seleccionar celdas, rangos, rangos con nombre, filas o columnas de Calc desde una macro en OOo Basic.
El sistema es sencillo, y conocido para seleccionar filas, rangos o rangos con nombre, en cuyo caso siempre se utiliza la misma instrucción: getCelRangeByName. El rango indicado (B8, o B8:C14, o un rango con nombre) quedará inmediatamente seleccionado en la hoja activa.
No es tan sencillo para seleccionar filas o columnas. Habitualmente, los programadores seleccionan un rango de celdas, como por ejemplo, para seleccionar la columna B seleccionan el rango B1:B65536. Pero esto puede resultar muy peligroso, sobre todo, en la actual carrera entre las suites en cuanto al número de columnas y de filas, que en la versión 3.3 son unas pocas más... exactamente 1.048.576 filas.
Por lo tanto es mejor utilizar otro sistema; el que aquí presentamos seleccionará todas las filas (o columnas) que ocupe el rango indicado. Por ejemplo, el rango C4:C8 seleccionará las filas 4 a la 8.
public sub SeleccionarRango( cRango as string )
' cRango puede ser una celda A1, un rango A1:B3, o un rango con nombre
dim oRango as object
oRango = ThisComponent.getCurrentController.getActiveSheet().getCellRangeByName( cRango )
ThisComponent.getCurrentController.select( oRango )
end sub
public function SeleccionarFila( cRango as string )
' Selecciona las filas donde se situa cRango
' cRango puede ser una celda A1, un rango A1:B3, o un rango con nombre
dim oHoja as object
dim dispatcher as object
SeleccionarRango( cRango )
oHoja = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(oHoja, ".uno:SelectRow", "", 0, Array())
end Function
public function SeleccionarColumna( cRango as string )
' Selecciona las columnas donde se situa cRango
' cRango puede ser una celda A1, un rango A1:B3, o un rango con nombre
dim oHoja as object
dim dispatcher as object
SeleccionarRango( cRango )
oHoja = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(oHoja, ".uno:SelectColumn", "", 0, Array())
end Function





07.01.11 23:55:22,