L'oggetto Worksheets/Sheets
|
|
| Aggiunge un nuovo foglio di lavoro che si chiama "MyNewSheet" al documento corrente. |
| VBA |
Sub MyProc
Dim wksh as Worksheet
Rem aggiunge un nuovo foglio prima del foglio attivo
set wksh = Worksheets.add
wksh.Name = "MyNewSheet"
Rem aggiunge un nuovo foglio dopo il foglio attivo
set wksh = Worksheets.add after:=ActiveSheet
wksh.Name = "MyNewSheet"
Rem aggiunge un nuovo foglio prima di "SomeOtherSheet"
set wksh = Worksheets.Add before:= _
Worksheets("SomeOtherSheet")
wksh.Name = "MyNewSheet"
Rem aggiunge un nuovo foglio dopo "SomeOtherSheet"
set wksh = Worksheets.Add after:= _
Worksheets("SomeOtherSheet")
wksh.Name = "MyNewSheet"
End Sub
|
| SB |
Sub MyProc
Dim oSheeet as object
Dim oSheets
oSheets = ThisComponent.Sheets
Rem aggiunge un nuovo foglio alla fine della collection
oSheets.insertNewByName("SomeOtherSheet", _
oSheets.getCount())
Rem aggiunge un nuovo foglio prima di "SomeOtherSheet"
oSheet = _
ThisComponent.CurrentController.ActiveSheet
ThisComponent.Sheets.InsertNewByName( _
"NewSheet_2", _
findSheetIndex(oSheet.Name) )
Rem aggiunge un nuovo foglio dopoi "SomeOtherSheet"
oSheet = _
ThisComponent.CurrentController.ActiveSheet
oSheets.InsertNewByName( "NewSheet_3", _
findSheetIndex(oSheet.Name)+1 )
Rem aggiunge un nuovo foglio prima di "SomeOtherSheet"
oSheets.InsertNewByName( "NewSheet_4", _
findSheetIndex("SomeOtherSheet"))
Rem aggiunge un nuovo foglio dopo "SomeOtherSheet"
oSheets.InsertNewByName( "NewSheet_5", _
findSheetIndex("SomeOtherSheet")+1 )
End Sub
|
| Note: se la funzione findSheetIndex().non trova il foglio di lavoro restituisce -1. |
|
|
| Elimina il foglio "MyNewSheet" dalla cartella corrente. |
| VBA |
Worksheets("MyNewSheet").Delete
|
| SB |
ThisComponent.Sheets.removeByName("MyNewSheet")
|
|
|
| Esegue elaborazioni specifiche quando "Sheet1" o "Sheet2" sono attivati o disattivati. |
| VBA |
In Excel, esistono eventi predefiniti di attivazione e disattivazione di foglia inserire in appositi moduli associati al foglio.
Private Sub Worksheet_Activate()
‘ codice da eseguire
End Sub
Private Sub Worksheet_Deactivate()
‘ codice da eseguire
End Sub
|
| SB |
' definisce il Listener per la proprietà di
‘ cambiamento del foglio attivo
Global oActiveSheetListener as Object
' variabile che indica il foglio attivo
Global CurrentWorksheetName as String
‘ attiva il Listener della proprietà di
‘ cambiamento del foglio attivo
Sub WorksheetActivationListenerOn
CurrentWorksheetName = ""
'crea listener
oActiveSheetListener = createUnoListener("ACTIVESHEET_", _
"com.sun.star.beans.XPropertyChangeListener")
'assegna listener alla proprietà del foglio attivo
ThisComponent.CurrentController. _
addPropertyChangeListener("ActiveSheet", _
oActiveSheetListener)
End Sub
' disattiva il listener della proprietà di
‘ cambiamento del foglio attivo
sub WorksheetActivationListenerOff
ThisComponent.CurrentController. _
removePropertyChangeListener("ActiveSheet", _
oActiveSheetListener)
end sub
' la procedura viene eseguita ogni volta che
‘ cambia la proprietà del foglio attivo
Sub ACTIVESHEET_propertyChange(oEvent)
'prima esegue il processo di disattivazione
select case CurrentWorksheetName
case "Sheet1"
'esegue istruzioni
case "Sheet2"
'esegue istruzioni
end select
'esegue il processo di attivazione
'per il nuovo foglio attivo
select case oEvent.Source.ActiveSheet.Name
case "Sheet1"
'esegue istruzioni
case "Sheet2"
'esegue istruzioni
end select
'salva il nome del nuovo foglio attivo
CurrentWorksheetName = oEvent.Source.ActiveSheet.Name
end Sub
|
| Note: In Calc, non ci sono eventi specifici di attivazione disattivazione di un foglio. L’approccio descritto assegna un PropertyListener alle proprietà del foglio attivo tramite l’oggetto ThisComponent.CurrentController. Una limitazione a questo approccio è che se cambia il tipo di visualizzazione, (esempio: anteprima di stampa) l’informazione viene persa.
L’approccio mostrato sopra consiste di 3 procedure. La procedura WorksheetActivationListenerOn è chiamata solo una volta per inizializzare il Listener. Questa procedura può essere assegnata all’evento "Open Document" del foglio di lavoro.
La procedura WorksheetActivationListenerOff è chiamata ogni volta che si desidera disabilitare le funzioni activate/deactivate.
La procedura ACTIVESHEET_propertyChange(oEvent) è chiamata ogni volta che il valore della proprietà del foglio attivo nell’oggetto ThisComponent.CurrentController cambia. oEvent descrive la proprietà di cambio evento.
|
|
|
| Chiude il documento aperto nell’esempio precedente. |
| VBA |
Sub MyProc
Worksheets("MySheet").Activate
End Sub
|
| SB |
Sub MyProc
Dim oSheet as Object
oSheet = ThisComponent.Sheets.getByName("MySheet")
ThisComponent.CurrentController.setActiveSheet(oSheet)
End Sub
|
|
|
|
|