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]