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