Hey Luz,
ich zitier mal aus meinem neuen Buch:
"Neben den eigentlichen Inhalten ist es auch möglich, jeder Zelle eine spezielle Notiz oder einen Kommentar zuzuordnen. Das Vorhandensein einer Notiz wird in der Zelle durch einen kleinen farbigen Punkt (viereckig, obere rechte Ecke der Zelle, rot) angezeigt, die Notiz selbst erschein, wenn man den Mauszeiger über der Zelle oder dem Punkt platziert.
Das Anzeigen eines Kommentars in einer Zelle als Punkt ist im Übrigen eine Eigenschaft des Services com.sun.star.sheet.DocumentSettings, und zwar der ShowNotes Eigenschaft. Nur wenn diese auf True steht (Vorgabe) werden die Punkte angezeigt, bei False nicht. Der Punkt hingegen hat keinen Einfluss auf das Darstellen der Notiz an sich, auch wenn der Punkt nicht sichtbar ist, wird der Kommentar eingeblendet, wenn sich der Mauszeiger über der Zelle befin-det.
Um nun einer Zelle einen Kommentar zuzuordnen, sollte man sich zunächst klar machen, wie Notizen generell verwaltet werden. Alle Notizen werden in einem eigenen Sammelobjekt zusammengefasst (vom Typ com.sun.star.sheet.CellAnnotations), jede Notiz stellt ein eigenes Objekt vom Typ com.sun.star.sheet.CellAnnotation dar. Über das Sammelobjekt erhält man Zugang zu jedem einzelnen Notizobjekt (indexbasierende Aufzählung), man kann neue Notizen als Objekte einfügen oder bestehende über ihren Index löschen. Zuständig hierfür ist das Interface com.sun.star.sheet.XSheetAnnotations, welches folgende Methoden bereitstellt:
insertNew( oCellAdr, sText) - fügt eine neue Textnotiz ein, und zwar zu der Zelle, deren Position als Zelladress-Objekt (oCellAdr als com.sun.star.table.CellAddress) übergeben wurde. Der Text der Notiz wird dabei als String (sText) als zweiter Parameter definiert.
removeByIndex(nIndex) - entfernt die Notiz an der mit nIndex (als Long) spezifizierten Stelle aus dem Sammelobjekt."
Und jetzt ein Beispiel (Einfügen einer Notiz zur Zelle F9):
Code: Alles auswählen
Sub NotizenEinfuegen
oSheet = thisComponent.sheets(0)
oCell = oSheet.getCellRangeByName("F9")
oCellAdr = oCell.CellAddress
oSheet.getAnnotations.insertNew(oCellAdr, "Ein wichtiges Datum")
End Sub
Viele Grüße
Thomas