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]