Utilizzo di riferimenti relativi con espressioni con nome

    From The Document Foundation Wiki
    < Macros‎ | Calc
    This page is a translated version of the page Macros/Calc/ba020 and the translation is 100% complete.


    Other languages:

    Questa pagina fornisce una procedura macro di LibreOffice Basic che illustra l'uso di riferimenti relativi con espressioni denominate. È un esempio tratto dal Capitolo 13 ("Calc come database") della Guida 7.0 Calc.

    Descrizione

    Se un intervallo denominato utilizza indirizzi di cella non assoluti, questi indirizzi verranno referenziati in relazione all'indirizzo di base dell'intervallo, definito dal terzo argomento del metodo addNewByName, Position. Questo comportamento è illustrato nel codice seguente, dove la macro AddNamedFunction crea l'espressione denominata AddLeft. Questa espressione fa riferimento all'equazione A3+B3 con C3 come indirizzo di base. Poiché vengono utilizzati riferimenti relativi, AddLeft somma i valori delle due celle direttamente a sinistra di qualsiasi cella contenente la formula "=AddLeft". Ad esempio, se si fa riferimento a AddLeft nella cella E5, verranno sommati i valori in C5 e D5 (si veda foglio di calcolo collegato).

    Tip.svg

    Suggerimento:
    Questo codice illustra un altro attributo poco noto di Calc: gli intervalli denominati sono un sottoinsieme di espressioni denominate, che possono includere anche formule.

    Codice

    Sub AddNamedFunction()
      Dim oSheet          'Foglio che contiene l'intervallo oRange.
      Dim oCellAddress    'Indirizzo per i relativi riferimenti.
      Dim oRanges         'La proprietà NamedRanges.
      Dim oRange          'Gamma di celle singole.
      Dim sName As String 'Nome dell'equazione da creare.
    
      sName = "AddLeft"
      oRanges = ThisComponent.NamedRanges
      If NOT oRanges.hasByName(sName) Then
        oSheet = ThisComponent.getSheets().getByIndex(0)
        oRange = oSheet.getCellRangeByName("C3")
        oCellAddress = oRange.getCellAddress()
        oRanges.addNewByName(sName, "A3+B3", oCellAddress, 0)
      End If
    End Sub

    Questo Foglio di calcolo Calc contiene il codice soprastante Basic di LibreOffice.