Makros mit OpenOffice Calc

Alt 14.07.2008, 23:58   # 1
Khor
 
Benutzerbild von Khor
 
Registriert seit: 28.01.2003
Beiträge: 429
Hallo,
hat jemand von euch Erfahrung mit dem Programmieren von Makros in Ooo Calc? Ich finde da keinen rechten Einstieg. Am Ende lande ich immer beim Developers Guide, aber der beschreibt ja viel mehr als das. Da geht es ja um Plug-Ins oder so ähnlich. Mein Ziel ist es eigentlich darauf zu reagieren, daß sich der Cursor auf eine andere Zelle bewegt. Keine Ahnung, wo ich da anfangen muß. Auf Arbeit habe ich mal was mit VBA in Excel gemacht. Das ging eigentlich. Aber bei StarBasic und Calc finde ich irgendwie keinen Ansatz.
  Mit Zitat antworten
Alt 19.07.2008, 12:39   # 2
snake-plissken
 
Benutzerbild von snake-plissken
 
Registriert seit: 12.09.2007
Beiträge: 35
Mein erster Ansatz bei Makros ist immer eine Makroaufzeichnung zu starten (Extras → Makros → Makro aufzeichnen) und dann die Aktionen auszuführen die man machen möchte, anschließend den Code anschauen (Extras → Makros → Makros verwalten → Makros, hier dann das vorher gespeicherte Makro auswählen und „Bearbeiten“ anklicken).

Dann kommt z.B. so etwas heraus :

REM ***** BASIC *****

Sub Main

call MainTest

End Sub


sub MainTest
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelpe r")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$4"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$B$8"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())


end sub

D.h. in dem Beispiel wurde zunächst auf B4 und dann auf B8 gewechselt.
  Mit Zitat antworten
Alt 20.07.2008, 11:14   # 3
Khor
Threadstarter
 
Benutzerbild von Khor
 
Registriert seit: 28.01.2003
Beiträge: 429
Danke, für den Tipp. Leider zeichnet der keine "Event Listener" auf. Soviel habe ich aber rausbekommen: Im Gegensatz zu VBA kennt OOo Basic keine Eigenschaft ActiveCell und damit auch kein Ereignis, daß bei Änderung der aktiven Zelle ausgelöst wird. Es scheint also nicht so einfach machbar zu sein. Da ist Excel wo einfach noch im Vorteil. Ich hoffe, das ganze gewinnt mit Version 3.0 an Funktionalität.
  Mit Zitat antworten

Alt 29.05.2012, 02:14 # --
News Flash
 
Benutzerbild von News Flash
 
 
 
   
Antwort

Stichworte
makros
Themen-Optionen



Alle Zeitangaben in WEZ +2. Es ist jetzt 02:14 Uhr.