Macro cancella DrawPages

Creare una macro - Scrivere uno script - Usare le API
Rispondi
ilkappa
Messaggi: 39
Iscritto il: mercoledì 1 febbraio 2017, 12:52

Macro cancella DrawPages

Messaggio da ilkappa »

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

Codice: Seleziona tutto

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

ThisComponent.getDrawPages()
e perchè questa non funziona quando la chiamo ad esempio su un foglio:

Codice: Seleziona tutto

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
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro cancella DrawPages

Messaggio da patel »

qui trovi spiegazioni ed esempi http://www.pitonyak.org/oo.php
oppure allega un file di esempio spiegando cosa vuoi ottenere
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
ilkappa
Messaggi: 39
Iscritto il: mercoledì 1 febbraio 2017, 12:52

Re: Macro cancella DrawPages

Messaggio da ilkappa »

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
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro cancella DrawPages

Messaggio da patel »

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
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Rispondi