Utilizzo di riferimenti relativi con espressioni con nome

From The Document Foundation Wiki
< Macros‎ | Calc
Jump to navigation Jump to search
This page is a translated version of the page Macros/Calc/ba020 and the translation is 100% complete.
Other languages:
English • ‎italiano

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

Tip:
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

 1Sub AddNamedFunction()
 2  Dim oSheet          'Foglio che contiene l'intervallo oRange.
 3  Dim oCellAddress    'Indirizzo per i relativi riferimenti.
 4  Dim oRanges         'La proprietà NamedRanges.
 5  Dim oRange          'Gamma di celle singole.
 6  Dim sName As String 'Nome dell'equazione da creare.
 7
 8  sName = "AddLeft"
 9  oRanges = ThisComponent.NamedRanges
10  If NOT oRanges.hasByName(sName) Then
11    oSheet = ThisComponent.getSheets().getByIndex(0)
12    oRange = oSheet.getCellRangeByName("C3")
13    oCellAddress = oRange.getCellAddress()
14    oRanges.addNewByName(sName, "A3+B3", oCellAddress, 0)
15  End If
16End Sub

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