Hey Dexter2000,
... kleines Verständnis Problem mit StarDesktop.CurrentComponent.
OK, das ist auch ein wenig verwirrend. StarDesktop.CurrentComponet liefert dir stets das Objekt der aktuell aktiven Anwendung, in deinem Fall also die Basic-IDE - und dort geht dein Calc-Befehl natürlich nicht. Die Basic-Ide hat keine Sheets
Würdest du den Code aus der Calc-Anwendung aufrufen (über das Menü oder über einen Button), würde er funktionieren, da jetzt das Calc-Dokument als Objekt zurückgeliefert wird.
Diese "Falle" kannst du umgehen mit der vorbelegten Varaiblen ThisComponent. Diese bezieht sich immer auf die letzte, aktive Modulvariante, Hilfefenster, Basic-IDE etc sind außen vor. Wenn du also schreibst:
Code: Alles auswählen
Doc = thisComponent
Sheet = Doc.Sheets.getByName("Sheet1")
kannst du den Code auch in der IDE testen. Zurückgeliefert wird jetzt das Calc-Dokument (falls dies das letzte aktive war). Und natürlich funktioniert der Code auch, wenn es später aus dem Dokument aufrufst.
Zellen:
Dien Code funktioniert nicht. Um auf einzelene Zellen zuzugreifen benötigst du ein Rangeobjekt (ist aber anders definiert al in VBA. Also: die Zelle erhälst du :
Code: Alles auswählen
Sheet.getCellByPosition(1,1) 'liefert die Zelle B2 (Indexe beginnen bei 0)
oder über den namenszugriff:
Weitere Fragen:
Wo finde ich in der IDE einen Object Browers ala VB-Editor?
Gar nicht. OOo hat soetwas (leider) nicht. Es gibt drei Methoden, um Objekte zu inspizieren:
dbg_properties, dbg_methods und dbg_supportedInterfaces, die können helfen. Ansonsten: Ein gutes Buch, ein gutes Tool und der Rest ist "lerning by doing".
Ein Buch: Makros für OOo 2.0, von mir, ab August im Handel (siehe Vereinsseite).
Ein Tool: devGuide, ein Objektinspektor - musst du mal auf der Homesiite von OOo suchen.
Der Rest.... das bekommst du selbst hin
Gruss
Thomas