OO6

    
    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