Seite 1 von 1
Re: 3 kleine Fragen: Makro beenden + Makro kopieren
Verfasst: Di, 15.02.2011 12:08
von gogo
ad 1:
Der Befehl den Du brauchst heisst "exit sub" bzw "exit function".
"exit function" deswegn, weil Du ja beide Makros beenden willst, daher sollte die aufGErufene Sub keine Sub sondern eine Function sein. Den Rückgabewert der Function benutzt Du dann in der aufrufenden Sub um auch diese zu beenden.
ad 2:
Das Überprüfen selbst ist kein Problem. Ruf das Makro einfach per Modulname.Makroname auf.
ad 2 und 3:
Willst Du ein Virus programmieren?
g
Re: 3 kleine Fragen: Makro beenden + Makro kopieren
Verfasst: Di, 15.02.2011 15:11
von komma4
1. Setze einen Schalter (wenn überhaupt nach dem Aufruf der 2.
SUB noch Code kommt)
Code: Alles auswählen
DIM iSchalter as INTEGER
SUB Main
iSchalter = 0
' mach was
' ...
call Unterprogramm
If iSchalter = = Then
' weitere Anweisungen
Else
End If
End Sub
Sub Unterprogramm
iSchalter = 1
End Sub
Das Nutzen von Sprunganweisungen gilt als "unsaubere" Programmierung.
2. Lokale (dokumentenspezifische)
Bibliotheken prüfst Du mit
Code: Alles auswählen
If ThisComponent.BasicLibraries.hasByName( "myLib" ) Then
myLib = ThisComponent.BasicLibraries.getByName( "myLib" )
und holst sie mit
getByName - falls vorhanden.
In diesen finden sich die Module - ebenfalls wieder mit
hasByName zu prüfen, den Inhalt holst Du Dir als
STRING mit
getByName .
Dann kannst Du schauen, ob der
STRING Dein Makrocode
SUB myMakro enthält.
3. Zugriff auf OOo-Bibliotheken
Erfolgt wie in 2., unter Austausch von
ThisComponent gegen
GlobalScope.
Suche hier im Forum nach
XRAY und installiere und benutze es, dann wird Dir vieles klarer.
XRAY selbst hat in seinen Bibliotheken Beispielcode zum Zugriff aus Basic-LIBs.
Hilft Dir das weiter?
Re: 3 kleine Fragen: Makro beenden + Makro kopieren
Verfasst: Do, 17.02.2011 08:32
von DPunch
Aloha
Dem Dokument das Ereignis per Makro zuweisen kannst Du folgendermassen:
Code: Alles auswählen
oDoc = thisComponent
Dim aEventArgs(1) as new com.sun.star.beans.PropertyValue
aEventArgs(0).Name = "EventType"
aEventArgs(0).Value = "Script"
aEventArgs(1).Name = "Script"
aEventArgs(1).Value = "vnd.sun.star.script:Bibliotheksname.Modulname.Makroname?language=Basic&location=document"
oDoc.Events.replaceByName("OnLoad",aEventArgs)
Re: 3 kleine Fragen: Makro beenden + Makro kopieren
Verfasst: Fr, 18.02.2011 17:27
von DPunch
Aloha
WoOolf hat geschrieben:Wo kann man denn sowas nachschlagen, wenn man es nicht weiss?
Gibt es evtl. eine gute Quelle?
Für sowas im speziellen wüsste ich keine gute Quelle, das meiste ergibt sich durch das Arbeiten mit xray, ansonsten liegt es irgendwo in den Foren oder in Dokumenten wie dem von Pitonyak.
Re: 3 kleine Fragen: Makro beenden + Makro kopieren
Verfasst: Sa, 19.02.2011 11:14
von komma4