[EMAIL PROTECTED] ha scritto:
[...]

.....invece quello che non sono riuscito a fare � creare la vera e propria Macro:
Aprendo Writer su di un nuovo documento, seleziono "Tools-Macros-Record Marco"; a questo punto inizia la registrazione (mi si apre la relativa pop-up che mi consente di interrompere la registrazione) seleziono File-New-Templates And Documents, scelgo il file .ott che mi interessa......a questo punto mi si apre una nuova finestra del Writer dove per� non � pi� visibile la pop-up per stoppare la registrazione. Se ritorno sulla finestra Writer dove � presente la pop-up e stoppo la registrazione e vado a vedere il contenuto della Macro registrata vedo che non ha registrato alcuno dei miei passaggi......Non so se sbaglio qualche cosa (ho seguito il metodo utilizzato in MS-Office) o se invece questo tipo di macro non � (ancora) possibile registrarla in OOo.


Ciao,

non � possibile creare una macro del genere con il registratore, questo perch� il registratore di OOo si basa sul dispatcher, cito un'ottima spiegazione da una mail in lista di Paolo Mantovani:

Per inciso, il dispatcher non � altro che il "postino" che si incarica di trasportare i messaggi dall'interfaccia utente di OOo al suo cuore pulsante.

Ogni click, ogni tasto premuto, ogni spostamento del mouse compiuto dall'utente si trasforma in un messaggio che viene trasportato dal dispatcher al programma, il quale, a seconda del messaggio ricevuto decide di volta in volta cosa fare.

Il registratore di macro tiene traccia di tutti questi messaggi e crea una macro in grado di riprodurli.

Compreso questo meccanismo diviene subito chiaro il limite di questo sistema:
Il dispatcher funziona solo in una direzione (almeno nell'utilizzo che ne fa il registratore di macro).


Si pu� scrivere qualcosa in una cella ad esempio, ma non si pu� _ottenere_ il contenuto di una cella

Per tutte queste cose � necesario scrivere macro basate sulle API specifiche di OOo

Il registratore non funziona con le eventuali finestre di dialogo aperte in OOo, per fare ci� di cui hai bisogno ti serve quindi di scrivere una macro in basic.

Ti riporto un esempio di quello di cui hai bisogno tratto dal manuale di Andrew Pitonyak:

Sub NewDoc

Dim oDoc
Dim sPath$
Dim FileProperties(0) As New com.sun.star.beans.PropertyValue
FileProperties(0).Name = "AsTemplate"
FileProperties(0).Value = true
sPath$ = "file:///c:/Modelli/Modello.stw"
oDoc = StarDesktop.LoadComponentFromUrl(sPath$, "_blank" , 0, FileProperties())


End Sub

In questo modo apri il file modello "Modello.stw" che si trova nella cartella "C:\Modelli", adatta la riga:
sPath$ = "file:///c:/Modelli/Modello.stw"
In base alle tue esigenze ma ricordati che il percorso va specificato usando la notazione url cio� file:///c:/Modelli/Modello.stw invece di C:\Modelli\Modello.stw
Verr� creato un nuovo file partendo dal modello, se invece hai bisogno di aprire il modello per modificarlo, cambia la riga:
FileProperties(0).Value = true
in:
FileProperties(0).Value = false


Non ho testato la macro nella beta ma dovrebbe funzionare.

Se hai problemi riposta.

Ciao

Fabio


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Rispondere a