Il 29/06/2017 12:26, Renato Pontefice ha scritto:
Sono quasi giunto alla fine del mio lavoro. Mi rimane solo da:
scrivere una cosa (per esempio "ciao" in una cella)
la macro, verra poi eseguita premendo un pulsante.
Quale è la sintassi per fare questa cosa?
Nel senso:
quale codice deve contenere la macro che esegue la cosa?
Grazie
Renato
Per imparare ad usare le macro ho usato questo libro e tante ricerche su
internet:
http://www.pitonyak.org/OOME_3_0.pdfpagina 470 (473)
http://www.pitonyak.org/oo.php
e non le so ancora usare bene...
prova a registrare una macro per capire come funzionano:
(per poterlo fare bisogna attivare in Strumenti->Opzioni->Avanzate
Abilita le funzionalita' sperimentali e Abilita la registrazione di macro)
da: Strumenti->Macro->Registra_macro
fai un click sulla cella B6
scrivi prova
premi invio
sulla finestrella apparsa quando hai scelto Registra_macro fai click su
termina registrazione
appare la finestra Macro di LibreOfficeBasic
scegli registra macro in: fai click sul + del nome del file di prova che
stai usando
click sul + di standard e in basso a destra scegli nuovo_modulo
vuoi sovrascrivere la macro main rispondi si
a questo punto la macro e' registrata.
da: Strumenti->Macro->Organizza_macro->LibreOfficeBasic
scegli Module1->Modifica
qui modifichi sub Main in sub Scrivi_su_cella_corrente
sub Scrivi_su_cella_corrente
rem in realta' non scrive nella cella corrente, ma in B6 -----------------
rem define variables -----------------------------------------------------
dim document as object
dim dispatcher as object
rem get access to the document -------------------------------------------
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ---va alla cella B6 -------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$6"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ---scrive nella cella corrente prova ---------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "prova"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ---premendo invio va alla cella successiva ---------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
end sub
Se vuoi scrivere nella cella corrente sostituisci la riga:
args1(0).Value = "$B$6"
con
args1(0).Value = ThisComponent.CurrentSelection
le righe con rem sono i commenti.
Le macro che scrivi le puoi salvare in formato testo con il pulsante
salva_basic
e le salva in formato .bas
Per abbinarla ad un pulsante della barra standard nel file stesso
Strumenti->Personalizza->Barre_degli_strumenti->standard
Aggiungi
in Sezione scendi fino a LibreOffice-Macro click su + e su Standard e su
Module1
in Comandi scegli Scrivi_su_cella_corrente
e ti appare Scrivi_su_cella_corrente sulla barra degli strumenti standard.
se vuoi puoi usare un'icona sempre da personalizza->barra_strumenti
scegli la nuova voce aggiunta poi cambia->cambia_icona
Spero di aver capito cosa avevi bisogno.
Scusa se ti ho mandato una mail con spiegazione passo passo,
ma non sapevo come conoscevi LibreOffice.
ciao
Beppe
--
le nuvole non hanno regole,
perchè non hanno mai rinunciato
alla libertà di sognare.
--
Come cancellarsi: E-mail users+unsubscribe@it.libreoffice.org
Problemi? http://it.libreoffice.org/supporto/mailing-lists/come-cancellarsi/
Linee guida per postare + altro: http://wiki.documentfoundation.org/Local_Mailing_Lists/it
Archivio della lista: http://listarchives.libreoffice.org/it/users/
Tutti i messaggi inviati a questa lista vengono archiviati pubblicamente e non sono eliminabili
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.