Ciao Bart,

Il 25/01/2011 14:33, Bart Aimar ha scritto:
Il 24/01/2011 23:45, Bart Aimar ha scritto:
Ovvero... come posso modificare via basic il codice che c'è nel doc o
in una libreria?

Questo mi rimane sempre misterioso e attendo fiducioso.

Invece:
E cancellare interi moduli (magari con -r ?) si può fare?

MMM... ovvio che si.. si possono cancellare librerie, moduli e singole
macro usando i 'normali' metodi già visti; grosso modo un removebyname
in un ciclo 'al contrario' (come tutti basici sanno...)

Insomma... con un po' di prove dovrei essere in grado di cancellarmi il
codice da sotto i piedi...

se intendi scrivere una macro che si cancella da sola temo che questo faccia andare in crash openoffice (o almeno, questo è successo a me quando ci ho provato anni fa)



Il problema è che questi moduli che devo eliminare stanno altrove, e
cioè dentro un documento.
E non riesco a trovarli.

La macro con cui esploro e cui vorrei cancellare sta in OOo e/o in un
package.
Ma, anche eseguendola avendo attivo il documento contenete i moduli
"condannati",
In BasicLibraries non li vedo... e nemmeno in ThisComponent.BasicLibraries

Temo mi stia sfuggendo qualcosa...

Non so se ho capito bene, comunque i moduli non sono direttamente in BasicLibraries, In basicLibraries ci sono le librerie che sono anche esse dei contenitori di moduli.
I moduli poi non sono trattati come oggetti ma come semplici stringhe

ecco un esempio con qualche commento esplicativo:


REM    *****    BASIC    *****

sub test

oDoc = ThisComponent
oLibs = oDoc.BasicLibraries

'creazione di una libreria
If Not oLibs.hasByname("Test") Then
  oDoc.BasicLibraries.createLibrary("Test")
End If

'prima di fare qualsiasi operazione assicurarsi che
'la libreria sia caricata in memoria
oLibs.loadLibrary("Test")

'creazione di un modulo
oLib = oDoc.BasicLibraries.Test
If Not oLib.hasByname("NuovoModulo") Then
  sModule = "REM Questo è un commento"
  oLib.insertByName( "NuovoModulo", sModule)

End If

'modifica di un modulo
oLib.NuovoModulo = oLib.NuovoModulo & Chr(10) & "' questo è un'altro commento"


'rimozione di un modulo
oLib.removeByName ("NuovoModulo")

'rimozione di una libreria
oLibs.removeLibrary("Test")


End Sub

----------------------------------

saluti
Paolo M


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Rispondere a