[Gelöst]Dokument öffnen mit Makro-Makrosicherheit

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

[Gelöst]Dokument öffnen mit Makro-Makrosicherheit

Beitrag von Jörg »

Hallo Fachleute,
in Anlehnung an dieses Thema:
viewtopic.php?f=18&t=40303

trotz Dannenhöfer und Kochbuch krieg ich es nicht hin, dass im per Makro geöffneten Dokument die Makros ausgeführt werden.
Ich habe bisher diesen Code:

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  
"4" steht für Ausführen ohne Nachfrage.
Ich würd mich freuen, wenn jemand eine Lösung dafür hätte.
Bei Dannenhöfer steht:

Code: Alles auswählen

(Der Vorsatz zu der Konstante ist immer: com.sun.star.document.MacroExecMode.xxx)
Aber wie gehe ich damit um?
Vielen Dank!
Zuletzt geändert von Jörg am Do, 21.12.2017 10:54, insgesamt 1-mal geändert.
Gruß Jörg

Win 10 Pro AOO 4.1.15
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Dokument öffnen mit Makro-Makrosicherheit

Beitrag von Toxitom »

Hallo Jörg,

also, der Code passt schon. Und wenn Du keine Fehlermeldung bekommst - ist das auch ok.

Prüfe zunächst erst einmal, ob die Sicherheitseinstellungen deines Programms überhaupt Makro-Ausführungen zulassen (Extras - Einstellungen od. Optionen - AOO - Sicherheit -> Makrosicherheit). Steht die noch auf "Hoch" oder "Sehr hoch", dann nützt Dir auch ein Code nix, ein Makro auszuführen;)

VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Dokument öffnen mit Makro-Makrosicherheit

Beitrag von Jörg »

Moin Tom,
danke für die Antwort.
Also die Einstellungen für die Makrosicherheit stehen unverändert auf "Niedrig".
Ich stell mal den Gesamtcode hier rein, aus dem der Code "docOeffnen" ausgeführt wird.

Code: Alles auswählen

sub save2 'Jahresabschluss "Speichern unter"
  oDoc=thisComponent
  Filename = Inputbox ("Bitte tragen Sie den neuen Dateinamen ein" , "Speichern unter")
  
  dim args1(0) as new com.sun.star.beans.PropertyValue
  args1(0).Name = "FilterName"
  args1(0).Value = "calc8"

  arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION) 
  dialog = CreateUnoService("com.sun.star.ui.dialogs.OfficeFilePicker")
  'Hinweis: der Dialog "com.sun.star.ui.dialogs.FilePicker" hat einen Bug bei .DisplayDirectory
  '         deshalb muss hier der OO-eigene Dialog .OfficeFilePicker genutzt werden
  dialog.Initialize(arg()) 
  dialog.appendFilter( "ODF Tabellendokument (*.ods)", "*.ods" )
  dialog.SetMultiselectionMode(False)
  dialog.DisplayDirectory = ConvertToURL("E:\openoffice\Jahresabschluesse")
  dialog.DefaultName = Filename
  ok = dialog.execute()
  if ok = 1 Then   
	datei = dialog.getFiles() 
	URL = datei(0) 
    oDoc.storeasurl(URL, args1())
  end if
  monatsumaetze_gkv 
  Summenteilerg
   copy_sheet
   statistik_sheet

antwort = msgbox ("Der Jahresabschluss DEZEMBER" & CHR(13) & "ist durchgeführt." & CHR (13)&"Schliessen Sie das Dokument und führen Sie im Orginaldokument den Monatswechsel durch" & CHR(13) & "Dokument schließen?", 52,"Monatswechsel")
if antwort = 7 then
		Exit sub
		else
		msgbox ("Bitte warten")
odoc.store
odoc.close(true) 
 end if    
 docOeffnen        
end sub
Gruß Jörg

Win 10 Pro AOO 4.1.15
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Dokument öffnen mit Makro-Makrosicherheit

Beitrag von Stephan »

Der Parameter heißt nicht:

Code: Alles auswählen

args1(0).name = "MakroExecutionMode"
sondern:

Code: Alles auswählen

args1(0).name = "MacroExecutionMode"
WAs doch aber auch bei Dannenhöfer so steht.


Gruß
Stephan
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Dokument öffnen mit Makro-Makrosicherheit

Beitrag von Toxitom »

Hmm Jörg, so ganz verstehe ich das Problem wohl nicht:
..Ich stell mal den Gesamtcode hier rein, aus dem der Code "docOeffnen" ausgeführt wird.
Dein Code hat doch zunächst mit dem ursprünglichen Thema gar nicht zu tun. Mit der Anweisung "docOeffnen" öffnest Du doch lediglich ein vorhandenes Dokument. Und das funktioniert nicht?

Oder hast Du im Dokument selbst Makros gespeichert, die du dann ausführen möchtest und das funktioniert nicht?

Wie startest Du denn die Makros? Ein Makro startet nicht von alleine - nie! Mit dem Öffnen eines Dokumentes würden Makros nur dann starten, wenn diese dem Ereignis "Dokument öffnen" zugeordnet sind. Ist das der Fall?
Ich denke, da fehlen noch ein paar Informationen....

VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: [Gelöst]Dokument öffnen mit Makro-Makrosicherheit

Beitrag von Jörg »

Hallo und vielen Dank,
@Tom
zur Info:
Zunächst speichere ich ein Dokument "Orginal" (In dem sich Makros befinden) mit "Speichern unter" "Kopie"
nach Schließen der "Kopie" wollte ich das "Orginal" wieder öffnen.
Das Öffnen klappte, aber das Ausführen der Makros mittels Button ging nicht.
@ Stephan
:shock: Das war es.
Nun nachdem der Code von Dannenhöfer, warum auch immer nicht ging, hab ich den aus dem Kochbuch kopiert.
Siehe Bild.
Kochbuch.PNG
Kochbuch.PNG (23.4 KiB) 4440 mal betrachtet
Aber jetzt funktioniert alles bestens.
Danke!
Gruß Jörg

Win 10 Pro AOO 4.1.15
Antworten