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

Cognolato Studio © 2005