Utilizar una función de Calc desde una macro
Éste truco lo he obtenido a partir de un post de Mauricio en el Foro Oficial en Español de OpenOffice.
Option Explicit
Sub Main
Dim oHoja As Object
Dim dSuma As Double
oHoja = ThisComponent.CurrentController.ActiveSheet
'1 Poniendo la formula en una celda, obtiendo su valor
oHoja.getCellRangeByName("A13").Formula = "=SUM(A1:A12)"
dSuma = oHoja.getCellRangeByName("A13").Value
oHoja.getCellRangeByName("A13").String = ""
'2 Aplicando la funcion suma directamente
dSuma = FuncionCalc( "SUM", Array(oHoja.getCellRangeByName("A1:A12")) )
End Sub
Function FuncionCalc( Nombre As String, Datos() )
Dim oSFA As Object
oSFA = createUnoService( "com.sun.star.sheet.FunctionAccess" )
FuncionCalc = oSFA.callFunction( Nombre, Datos() )
End Function





27.01.12 19:47:35,