Seite 1 von 1

Makro zum Datei öffnen

Verfasst: So, 18.07.2010 11:05
von clag
Hallo Kenner und Könner,

hier wieder eine furcht- und schamlose clag Frage :lol:

in Anlehnung an Turtel47 Hinweis, viewtopic.php?f=1&t=40301
habe ich mir von hier http://www.dannenhoefer.de/faqstarbasic ... l#Zweig138
etwas Code ausgeliehen und das hier zusammen gestrickt

Code: Alles auswählen

sub loadvorlage01

Dim myProp(0) as new com.sun.star.beans.PropertyValue

myProp(0).name="MacroExecutionMode"
myProp(0).value = 6
url=converttourl("c:\Dokumente und Einstellungen\clag\Anwendungsdaten\OpenOffice.org\3\user\template\html-import-1.ott")
oDocument = StarDesktop.loadComponentFromURL(url, "_blank", 0, myProp() )

'	NEVER_EXECUTE						0	Makros werden nicht ausgeführt
'	FROM_LIST							1	Nur Makros aus der hinterlegten List werden ausgeführt
'	ALWAYS_EXECUTE						2	Makros werden ausgeführt, aber mit Warnung wenn es eingestellt ist
'	USE_CONFIG							3	Die Konfiguration wird verwendet.
'	ALWAYS_EXECUTE_NO_WARN				4	Makros werden immer ausgeführt, keine Warnung
'	USE_CONFIG_REJECT_CONFIRMATION			5	Der Benutzer wird gefragt und bei Ablehnung wird die Konfiguartion verwendet.
'	USE_CONFIG_APPROVE_CONFIRMATION		6	Der Benutzer wird gefragt und bei Annahme wird die Konfiguartion verwendet.
'	FROM_LIST_NO_WARN					7	Makros von der Liste werden ausgeführt.
'	FROM_LIST_AND_SIGNED_WARN				8	Makros aus der Liste und zertifizierte Makros werden ausgeführt, aber mit Warnung.
'	FROM_LIST_AND_SIGNED_NO_WARN			9	Wie oben, aber ohne Warnung
end sub
grundsätzlich tut das Makro was es soll die Vorlage als neues Unkanntes Dokument laden :)

ABER

1. egal welchen Wert ich bei myProp(0).value = ? eintrage es erfolgt keine MakroSicherheitsabfrage wieso ?

2. wieso muss ich den kompletten Pfad angeben ?
in den Extras werden doch Pfade definiert, auch der wo die Templates liegen
demnach müsste es doch eine OOo-variable geben die diesen Pfad beinhaltet und anstelle von
url=converttourl("c:\Dokumente und Einstellungen\clag\Anwendungsdaten\OpenOffice.org\3\user\template\html-import-1.ott")
müsste ein
url=converttourl("templatepfadvariable\html-import-1.ott")
reichen denke ich, wie lautet der richtige VariablenName !?

3. hat der Herr Dannehöfer da ein Fehler im Beispiel oder verstehe ich etwas nicht
ist dieses original oDocument = StarDesktop.loadComponentFromURL(url, "_blank", 0, myFileProp() )
oder das gekürzte oDocument = StarDesktop.loadComponentFromURL(url, "_blank", 0, myProp() )
richtig ?

Re: Makro zum Datei öffnen

Verfasst: So, 18.07.2010 11:52
von turtle47
Hi,
clag hat geschrieben:1. egal welchen Wert ich bei myProp(0).value = ? eintrage es erfolgt keine MakroSicherheitsabfrage wieso ?
Habe ich jetzt auch keine Idee dazu.
clag hat geschrieben:2. wieso muss ich den kompletten Pfad angeben ? .....
Brauchst Du nicht wenn Du folgendes verwendest:

Code: Alles auswählen

	aService = CreateUnoService("com.sun.star.util.PathSubstitution")
	sUserPath = aService.substituteVariables("$(user)", true)
	msgbox sUserPath,64,"UserPath-Directory"
clag hat geschrieben:3. hat der Herr Dannehöfer da ein Fehler im Beispiel oder verstehe ich etwas nicht
ist dieses original oDocument = StarDesktop.loadComponentFromURL(url, "_blank", 0, myFileProp() )
oder das gekürzte oDocument = StarDesktop.loadComponentFromURL(url, "_blank", 0, myProp() )
richtig ?

Code: Alles auswählen

oDocument = StarDesktop.loadComponentFromURL(url, "_blank", 0, myProp() )
ist in diesem Fall richtig.

Jürgen

Re: Makro zum Datei öffnen

Verfasst: So, 18.07.2010 12:01
von balu
Hallo clag,

zu 1.
Wenn Du das von hier her hast, dann lies dir die Seite noch mal richtig durch (auch Sätze in Klammern geschrieben haben ihre Bedeutung).

Auch Michael hat eine eingebaute SuFu. Die läuft wohl über google, aber das stört ja das Ergebnis net :wink:.


Gruß
balu

Re: Makro zum Datei öffnen

Verfasst: So, 18.07.2010 13:06
von clag
Hallo Balu,

ich habe mir nach deinem Hinweis den Satz in Klammern noch einmal genau anschaut
aber ich versteh es nicht ! zumal ja auch ein Teil davon als Name verwendet wird ?
auch experimentell komm ich da nicht weiter, entweder nix oder Fehlermeldung :(

Bist du so gut und schreibst das nochmal so, das auch ich als Basic SAU das verstehe ~~~ :?

Re: Makro zum Datei öffnen

Verfasst: So, 18.07.2010 13:47
von balu
Hallo clag,

auch wenn SAUs zusammenhalten sollen, so kann ich dir da auch nicht weiterhelfen. Ich wollt dich durch meinen Beitrag indirekt nur darauf aufmerksam gemacht haben, bevor man die Makrosicherheitsstufe ausführen kann das man wohl vorher die dementsprechende com.sun.... irgendwie aktivieren muss. Wie jetzt aber genau, keine Ahnung.

Vielleicht solltest Du dir mal das StarBasic Programmierhandbuch von SUN runterladen. Hat ja nur 240 Seiten :lol:.
(Übersicht über wichtige Bereiche der SO/OOo Programmierung in StarBasic, informativ, verständlich, größere Menge an Beispielcode)
Der Link (und Text) ist hier aus dem Sticky "Informationen zur StarBasic-Programmierung".

Ich hatte schon mal in das "Buch" reingeschaut, und kann nur sagen, dass es wirklich sehr umfangreich ist. Vielleicht hilfts dir ja weiter.


Greetings
balu

Re: Makro zum Datei öffnen

Verfasst: So, 18.07.2010 23:14
von clag
Hallo Balu,

so langsam komm ich dahin das ich in dem dort geschrieben etwas Sinn erkenne
dann hilft auch möglicherweise ab und an das lesen dieser Info's

na denn bis bald und gute Nacht :)

Re: Makro zum Datei öffnen

Verfasst: Mi, 20.12.2017 18:13
von Jörg
Hallo Fachleute,
sorry, dass diesen alten Thread nochmal aufwärme.
Aber trotz Dannenhöfer und Kochbuch krieg ich es nicht hin.
Es werden keine Makros im geöffneten Dokument ausgeführt.

Code: Alles auswählen

Sub docOeffnen 
 dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).name = "MakroExecutionMode"
args1(0).value = 4   
sUrl =converttourl( "E:\openoffice\Patientendatei.ods")
oDocument = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, args1())   
end sub  
Vielleicht wäre es möglich, mal draufzuschauen?
Vielen Dank für Eure Hilfe.
P.S.
AOO 4.1.4.

Moderationshinweis:
Bitte keine "alten" Threads mehr aufwärmen.
Siehe auch Infos zur Forenbenutzung (dort unter: "Eröffnet neue Threads").
Eröffne bitte einen neuen Thread mit Deiner Frage.
Thread geschlossen.