Credo di aver capito che la discussione è stata spostata ma non ho capito dove. Chiedo quindi scusa se la mia risposta è fuori luogo ma in realtà più che una risposta vuole essere una richiesta di aiuto simile
Io ho lo stesso problema di jankarlo e sto navigando alla ricerca di spezzoni di codice per capire come ottenere alcune funzionalità
Da un programma vb creavo runtime dei file excel
Riporto di seguito alcuni spezzoni di codice che sono riuscito a sviluppare per ottenere lo stesso risultato con calc di open office
Non so se la soluzione da me trovata sia ottimale
Sembra funzionare e tanto mi basta per il momento
Lancio il Service manager, necessario per qualsiasi applicazione OpenOffice
'se non ci sono applicazioni office attive, viene lanciato il ServiceManager
Set oSM = CreateObject("com.sun.star.ServiceManager")
'Creazione del Desktop, assieme al create object completa la creazione
Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
'Apro/Creo il file di open office
'_blank star office crea una nuova finestra
Set OpenParam(0) = MakePropertyValue("Hidden", False)
Set oCalc = oDesk.loadComponentFromURL(ConvertToUrl(sFileDistinta), "_blank", 0, OpenParam())
'Seleziono il primo foglio elettronico del file aperto
Set oSheet = oCalc.getSheets().getByIndex(0)
p_lEstremo(SUPERIORE) = FindLastCellNotEmptyInColumn(oSheet, 3)
La funzione FindLastCellNotEmptyInColumn l'ho creata io.
Possibile che non esista già un metodo che determini l'ultima cella che riporta un valore in una colonna ?!?
Io non credo 
per recuperare il nome della scheda
If oCalc.getSheets().getCount > 0 Then
Set objSheet = oCalc.getSheets().getByIndex(SCHEDA_ORIGINALE)
m_sNomeSchedaOriginale = objSheet.Name
RecuperaNomeScheda = True
Else
...
per duplicare una scheda
'Aggiungo in coda una copia della scheda
Call oCalc.getSheets().copyByName(sNomeSchedaOriginale, "New Sheet", SCHEDA_ORIGINALE + 1)
[/code]
per rinominare una scheda
oCalc.getSheets().getByIndex(m_iScheda).SetName = m_sNomeScheda
per eliminare una scheda
Set objSheet = oCalc.getSheets().getByIndex(m_iScheda)
Call oCalc.oSheets().RemoveByName(objSheet.Name)
Quest'ultima non funziona 
Eppure l'ho copiata pari pari
Dice che il metodo non è supportato
C'è un anima pia che ha tempo e voglia di aiutarmi senza girarmi link di manuali in inglese che superano le 300 pagine ?
Grazie in anticipo per le risposte