Mostrar información de un objeto en un archivo de Calc
From Apache OpenOffice Wiki
Sub ObtenerDatos( Objeto As Object ) Dim sRuta As String Dim oDoc As Object Dim mArg() Dim a1() As String, a2() As String Dim co1 As Integer, sTmp As String sRuta = "private:factory/scalc" oDoc = StarDesktop.LoadComponentFromURL( sRuta,"_default",0,mArg ) a1 = Split( Objeto.DBG_Properties, ":" ) a2 = Split( Trim(a1(1)), ";" ) oDoc.Sheets().getByIndex(0).getCellByPosition( 0, 0 ).setString( a1(0) ) For co1 = LBound( a2 ) To UBound( a2 ) sTmp = Trim(a2(co1)) If Left( sTmp, 1) = Chr(10) Then sTmp = Right( sTmp, Len(sTmp)-1 ) oDoc.Sheets().getByIndex(0).getCellByPosition( 0, co1+1 ).setString( sTmp ) Next co1 If Right( sTmp, 1) = Chr(10) Then sTmp = Left( sTmp, Len(sTmp)-1 ) oDoc.Sheets().getByIndex(0).getCellByPosition( 0, co1 ).setString( sTmp ) a1 = Split( Objeto.DBG_Methods, ":" ) a2 = Split( Trim(a1(1)), ";" ) oDoc.Sheets().getByIndex(0).getCellByPosition( 1, 0 ).setString( a1(0) For co1 = LBound( a2 ) To UBound( a2 ) sTmp = Trim(a2(co1)) If Left( sTmp, 1) = Chr(10) Then sTmp = Right( sTmp, Len(sTmp)-1 ) oDoc.Sheets().getByIndex(0).getCellByPosition( 1, co1+1 ).setString( sTmp ) Next co1 If Right( sTmp, 1) = Chr(10) Then sTmp = Left( sTmp, Len(sTmp)-1 ) oDoc.Sheets().getByIndex(0).getCellByPosition( 1, co1 ).setString( sTmp ) a1 = Split( Objeto.DBG_SupportedInterfaces, ":" ) a2 = Split( Trim(a1(1)), Chr(10) ) oDoc.Sheets().getByIndex(0).getCellByPosition( 2, 0 ).setString( a1(0) ) For co1 = LBound( a2 ) To UBound( a2 ) sTmp = Trim(a2(co1)) If Left( sTmp, 1) = Chr(10) Then sTmp = Right( sTmp, Len(sTmp)-1 ) oDoc.Sheets().getByIndex(0).getCellByPosition( 2, co1 ).setString( sTmp ) Next co1 End Sub
Asegúrate de pasarle como parámetro una variable de objeto; si el objeto no implementa métodos, la macro te dará un error y se detendrá, pero te creará el archivo con al menos las propiedades que implementa.
Sub Pruebas Dim obj As Object obj = ThisComponent Call ObtenerDatos ( obj ) End Sub
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 |