Pagina 1 di 1

Macro cancella DrawPages

Inviato: martedì 4 dicembre 2018, 9:13
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

Re: Macro cancella DrawPages

Inviato: martedì 4 dicembre 2018, 9:44
da patel
qui trovi spiegazioni ed esempi http://www.pitonyak.org/oo.php
oppure allega un file di esempio spiegando cosa vuoi ottenere

Re: Macro cancella DrawPages

Inviato: martedì 4 dicembre 2018, 10:00
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?

Re: Macro cancella DrawPages

Inviato: mercoledì 5 dicembre 2018, 8:11
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