7.5.3 Wie kann man Notizen eintragen oder löschen?
Zu jeder Zelle kann man zusätzlich Notizen hinterlegen. Dann het die Zelle einen kleinen roten Punkt.

Dies geht natürlich auch mit Starbasic. Erst mal der Weg aus der Original-Dokumentation.
Notizen sind Objekte des Arbeitsblattes die Zelladressen zugeordnet sind. Über den Container (com.sun.star.sheet.CellAnnotations) der alle Notizen enthält, kann man neue Notizen zu einer Zelle hinzufügen oder Notizen über den Index löschen.


Sub InsertNotiz
  oDoc = thisComponent
  oSheet = oDoc.sheets(0)
  oZelle = oSheet.getCellRangeByName("C1")
'oder   oZelle=oSheet.getCellByPosition(0,0)
  oZellAdresse = oZelle.CellAddress
  oNotizen=oSheet.getAnnotations
  oNotizen.insertNew(oZellAdresse, "Eine Notiz")
End Sub

Ist bereits eine Notiz zu der Zelle vorhanden, wird der Inhalt überschrieben.

Löschen geht dann mit removebyindex.

  oNotizen=oSheet.getAnnotations
  oNotizen.removebyindex(1)


Leider kann man nicht unbedingt mit dem Index auf die gewünschte Zelle zugreifen. Daher muß man wenn man den Index nicht kennt, über alle Zellen gehen und damit den richtigen Index herausbekommen. Dies geht über die Enumaration des Containers und ist daher etwas umständlich. Zum Schluß kommt noch eine schnellere Alternative.

sub loescheNotiz
' Für Zelle a1
  zeile=0
  spalte=0
  oDoc = thisComponent
  oSheet = oDoc.sheets(0)
  oNotizen=oSheet.getAnnotations
  listNotizen=oNotizen.createenumeration
  indexzaehler=0
  while listNotizen.hasmoreelements
   oNotiz.nextelement()
   if oNotiz.position.row=zeile and oNotiz.position.column=spalte then index=indexzaehler
   indexzaehler=indexzaehler+1
  wend
  oNotizen.removebyIndex(index)
end sub


Jetzt der schnelle Weg.
Der schnellere Weg geht über die Zelle. Dort kann man einfachen den Text der Notiz setzen, damit wird die Notiz eingefügt. Ist die Zeile leer wird die Notiz gelöscht.

sub notizaendern
  oDoc = thisComponent
  oSheet = oDoc.sheets(0)
  oZelle = oSheet.getCellRangeByName("F1")
  oNotiz=ozelle.getannotation
  oNotiz.string="text"
' oder zum löschen
'  oNotiz.string=""
end sub