Pannello di Controllo Moderatore ]

Macro cancella DrawPages

Creare una macro - Scrivere uno script - Usare le API

Macro cancella DrawPages

Messaggioda ilkappa » martedì 4 dicembre 2018, 9:13

Ciao a tutti
Tempo fa per mi era stata passata questa macro

Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub _clearGraphs(Target)
oDrawPages = ThisComponent.getDrawPages()
If oDrawPages.hasElements() Then
  For i = 0 To oDrawPages.getCount() - 1  REM # For all drawpages in workbook
      oDrawPage = oDrawPages.getByIndex(i)
      If oDrawPage.hasElements() Then
         For j = (oDrawPage.getCount() - 1) To 0 Step -1
             oShape = oDrawPage.getByIndex(j)
             oDrawPage.remove(oShape)
         Next j
      EndIf
  Next i
EndIf
End Sub

Che si occupa di ripulire i fogli presenti nel file da eventuali immagini caricate sempre tramite macro.
Ho notato che questa macro cancella anche tutti i campi dei formulari, perchè probabilmente vengono letti come oggetti disegno.
Quello che a me interessa è capire come lavora la funzione
Codice: Seleziona tutto   Espandi visualeStringi visuale
ThisComponent.getDrawPages()
e perchè questa non funziona quando la chiamo ad esempio su un foglio:
Codice: Seleziona tutto   Espandi visualeStringi visuale
SH.getDrawPages()
dove SH è ThisComponent.Sheets.getByName("XXX") oppure Target.getSpreadsheet().

Una seconda domanda è: c'è una differenza e penso sia legata all'oggetto attivo, ma .... qual'è la differenza tra Target e ThisComponent? Partendo dal presuppsto che Target dovrebbe essere l'evento, ovvero la variabile passata alla chiamata di una funzione:
Sub Nomefunzione(Target)

Grazie a tutti
OpenOffice 3.1 su Ubuntu 16.04
ilkappa
 
Messaggi: 28
Iscritto il: mercoledì 1 febbraio 2017, 12:52

Re: Macro cancella DrawPages

Messaggioda patel » martedì 4 dicembre 2018, 9:44

qui trovi spiegazioni ed esempi http://www.pitonyak.org/oo.php
oppure allega un file di esempio spiegando cosa vuoi ottenere
-------------------
OpenOffice 4.1 e Libre Office 6 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3049
Iscritto il: venerdì 30 aprile 2010, 7:04
Località: Livorno

Re: Macro cancella DrawPages

Messaggioda ilkappa » martedì 4 dicembre 2018, 10:00

Grazie Patel, è un link con tante informazioni.... devo perderci un po di tempo per leggerle.
Anche capire dove vengono elencate le varie funzioni con le loro spiegazioni

Posso chiederti al volo se riesci a darmi una spiegazione della differenza tra ThisComponent ed Target, per come vengono comunemente usati?
OpenOffice 3.1 su Ubuntu 16.04
ilkappa
 
Messaggi: 28
Iscritto il: mercoledì 1 febbraio 2017, 12:52

Re: Macro cancella DrawPages

Messaggioda patel » mercoledì 5 dicembre 2018, 8:11

ThisComponent + il documento su cui stai lavorando, l'equivalente di ThisWorkbook in excel, in excel si può omettere la maggior parte delle volte, su OO invece no.
Target non è una parola chiave, è una variabile comunemente usata per gestire gli eventi
-------------------
OpenOffice 4.1 e Libre Office 6 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3049
Iscritto il: venerdì 30 aprile 2010, 7:04
Località: Livorno


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Eramad e 3 ospiti