Utilizar una función de Calc desde una macro

OpenOffice Calc integra muchas funciones útiles para nuestras macros. Con este sencillo truco puedes utilizarlas para tus propósitos fácilmente.

Este truco lo he obtenido a partir de un post de Mauricio en el Foro Oficial en Español de OpenOffice.
Option Explicit

Sub PruebaFuncionCalc
	Dim dSuma As Double

  ' Podemos utilizar funciones de Calc desde una macro de dos modos
  ' Modo 1: Poniendo la formula en una celda, obtiendo su valor
	Dim oHoja As Object
	oHoja = ThisComponent.CurrentController.ActiveSheet	
	oHoja.getCellRangeByName("A13").Formula = "=SUM(A1:A12)"
	dSuma = oHoja.getCellRangeByName("A13").Value
	oHoja.getCellRangeByName("A13").String = ""

  ' Modo 2: Aplicando la funcion suma directamente
	dSuma = FuncionCalc( "SUM", Array(oHoja.getCellRangeByName("A1:A12")) )
 
End Sub

Function FuncionCalc( Nombre As String, Datos() )
  ' Esta función permite llamar a una función de Calc por su nombre en Inglés	
	Dim oSFA As Object
	oSFA = createUnoService( "com.sun.star.sheet.FunctionAccess" )
	FuncionCalc = oSFA.callFunction( Nombre, Datos() )
End Function

No hay reacciones, todavía


Form is loading...