Date: prev next · Thread: first prev next last
2017 Archives by date, by thread · List index


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.