OO3

    
    Di seguito sono riportati schematicamente alcune differenze tra ExcelVBA e CalcSB. Ad ogni frammento di codice VBA corrisponde l’equivalente traduzione in SB.
    Una nota generale nella differenza tra VBA ed SB. In VBA, quando un oggetto Excel è referenziato, come un range di celle, se non è esplicitamente codificato, si assume che il range di celle sia contenuta nella cartella attiva (ActiveWorkbook) e nel foglio attivo (ActiveSheet). Al contrario in SB ogni riferimento ad un oggetto di Calc deve essere completamente identificato. In altre parole per un range di celle è necessario specificare la cartella [spreadsheet] ed il foglio [sheet].
    Una tecnica molto utile per comprendere il codice in ExcelVBA è quella di usare il generatore di macro. La stessa tecnica non è altrettanto efficace in CalcSB. Il codice generato dal registratore di macro è basato sull’interazione tra lo “spreadsheet” e la manipolazione risultante la registrazione del modello ad oggetti del foglio di lavoro.
    Il codice spesso risulta eterogeneo, anche se comunque fornisce un indizio nel comprendere il modello ad oggetti legato al foglio di lavoro di Calc.
    Note generali sulla programmazione:
    Indicatore che segnala che la macro è in esecuzione.
    Excel Il puntatore del mouse cambia da una freccia ad una clessidra.
    Calc Il puntatore non cambia. Non c’è alcuna indicazione che la macro è in esecuzione.
    Terminazione manuale di una macro in esecuzione.
    Excel Ctrl-Break
    Calc Strumenti > Macro > Macro > Modifica > Premere il pulsante Stop
    Assegnare un oggetto ad una variabile.
    Excel
    Sub MyProc
      Dim wksh as Worksheet
        set wksh = ActiveSheet
    End Sub
    Calc
    Sub MyProc
       Dim oSheet as Object
    	
       oSheet = ThisComponent.CurrentController. _ 
       ActiveSheet
    
       'or
    	
        set oSheet = ThisComponent. _ 
        CurrentController.ActiveSheet
    End Sub
    Note: Mentre l’istruzione set è obbligatoria in VBA, può essere omessa in SB. In Excel, oltre all’oggetto generico Object, ci sono vari tipi di oggetti specifici (Worksheet, Workbook, Range, etc.), al contrario, in Calc, esiste solo il tipo generico Object.