Il 29/11/2010 12:50, Paolo Mantovani ha scritto:
..zooot...
il metodo getPrintAreas() restituisce un array, ovvero una matrice o un vettore, insomma si tratta di un insieme di valori accessibili per mezzo di un indice.

mAreas() = oSheet.getPrintAreas()
aRangeAddress = mAreas(0)


Come per tutti gli array in Basic puoi eseguire un ciclo anche senza usare direttamente gli indici (ciclo For Each...)

mAreas() = oSheet.getPrintAreas()
For Each aRangeAddress in mAreas()
  xray aRangeAddress
Next

Ok! Questo funziona! :-)


Intercettare la printarea "multipla" non è difficile, ma occorre decidere cosa fare poi...

Semplice: se la riconosci avverti l'utente che non puoi esportarla e annulli l'azione!


In realtà io penso che la soluzione al problema non sia quella nel codice di esempio che ti ho postato.

Alla luce di quanto osservato fino ad ora riguardo ai limiti dell'esportazione "selezione", penso che la procedura seguente sia più indicata per ottenere l'esportazione del foglio corrente:

REM    *****    BASIC    *****

sub test
Dim mSheetAreas()

  oDoc = ThisComponent
  oSheets = oDoc.Sheets()
  oActiveSheet = oDoc.CurrentController.ActiveSheet()

  For Each oSh In oSheets
    If oSh.Name <> oActiveSheet.Name Then
      AppendItem(mSheetAreas(), Array(oSh.Name, oSh.PrintAreas()))

Questo invece si blocca su quest'ultima riga!

Suppongo un refuso,  ma non trovo come correggere...

grazie

Bart

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Rispondere a