Jump to content

relative Bezüge mit benannten Ausdrücken verwenden

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


Zusammenfassung

Diese Seite zeigt ein LibreOffice Basic Makro, das die Verwendung relativer Bezüge mit benannten Ausdrücken illustriert. Es ist ein Beispiel aus Kapitel 13 ("Calc als Datenbank") aus dem Calc 7.0 Handbuch.

Beschreibung

Wenn ein bennanter Bereich Zellbezüge verwendet, die nicht absolut sind, dann werden diese Bezüge relativ zur Basis Adresse des Bereiches referenziert, die mit dem dritten Argument der Methode addNewByName, der Position, definiert wird. Dieses Verhalten wird im untenstehenden Code gezeigt. Hier erzeugt das Makro AddNamedFunction den benannten Bereich AddLeft. Dieser Ausdruck referenziert die Gleichung A3+B3 mit C3 als seine Basisadresse. Da relative Zellbezüge AddLeft verwenden, wird die Summe der Werte der zwei Zellen direkt nach links jeder Zelle, die die Formel =AddLeft enthält aufsummieren. Z. Bsp., wenn AddLeft in der Zelle E5 steht, wird sie dien Zellen C5 und D5 aufsummieren (siehe verlinktes Tabellenblatt).

Tipp:
Dieser Code zeigt ein anderes wenig bekanntes Merkmal von Calc: benannte Bereiche sind eine Untermenge von benannten Ausdrücken, die auch Formeln enthalten können.

Code

Sub AddNamedFunction()
  Dim oSheet          'Tabellenblatt, das den Bereich oRange enthält
  Dim oCellAddress    'Adresse für relative Zellbezüge
  Dim oRanges         'Die Eigenschaft NamedRanges
  Dim oRange          'Zellberich mit einer Zelle
  Dim sName As String 'Name der zu erstellenden Gleichung

  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

Dieses Calc Tabellenblatt enthält den obigen LibreOffice Basic Code.