Hallo,
ich habe diesbezüglich auch mal ein wenig getestet:
[1] Mit "Hidden" und "False" friert LO bei "MsgBox ("FileOperation: NACH
StarDesktop.loadComponentFromURL")" ein (s.u.).
[2] Mit "Hidden" und "True" friert LO bei "MsgBox ("NACH
FileOperation")" ein (s.u.).
In beiden Fällen hat "soffice.bin" eine CPU-Auslastung von zirka 25%.
Bei diesen Zeilen ( >>>>> ) habe ich das Makro modifiziert (s.u.).
Testumgebung: LO 6.2.2.2 (x64) @ Windows 7 Home Premium 64-bit.
Eine Erklärung für das oben geschilderte Verhalten habe ich leider
nicht.
ANMERKUNG:
Ich selbst habe bei einem MAKRO im Kontext mit dem Öffnen einer
CALC-Datei das Problem, wenn ich den "Folder Picker Betriebs System"
auswähle, dass das MAKRO einfriert, nicht aber, wenn ich den "Folder
Picker Open Office" auswähle. Nicht aber bei früheren LO-Versionen.
Vielleicht besteht ja ein Zusammenhang zu obigem Problem, dass die
BASIC-MAKRO-Picker nicht mehr 100%ig funktionieren, ist aber nur eine
vage Vermutung:
' Folder Picker Betriebs System:
Const FPBS = "com.sun.star.ui.dialogs.FolderPicker"
' Folder Picker Open Office:
Const FPOO = "com.sun.star.ui.dialogs.OfficeFolderPicker"
Grüße
Hans-Werner :-))
[3] Makro-Modifikationen
Option Explicit
>>>>> Private oDlgM as Object ' das Modell des Dialogs
>>>>> Private oDlg as Object ' Dialogfenster
>>>>> Private oMod as Object ' nimmt jeweils das Modell der
Objekte auf (Textfeld)
>>>>> Private oMod1 as Object ' nimmt jeweils das Modell der
Objekte auf (Button)
>>>>> Private oMod2 as Object ' nimmt jeweils das Modell der
Objekte auf (Button)
>>>>> Private oMod3 as Object ' nimmt jeweils das Modell der
Objekte auf (Button)
>>>>> Private oWin as Object
>>>>> Private oListener1 as Object
>>>>> Private oListener2 as Object
>>>>> Private oListener3 as Object
>>>>> Private oControl1 as Object
>>>>> Private oControl2 as Object
>>>>> Private oControl3 as Object
REM Deklaration der Variablen
>>>>> Private oDocW as Object ' Writer-Dokument
>>>>> Private oDocC as Object ' Calc-Dokument (wird
versteckt geöffnet)
:
:
Sub Dateidialog
On Error GoTo ErrorHandler
MsgBox "Der nachfolgende Dateidialog fordert sie zum Öffnen
dieser Datei auf:" & chr(10) & _
">>> Kopfzeilen_Texte.ods <<<" & chr(10) & _
"Wählen Sie zunächst den korrekten Pfad zu dieser
Datei aus." ,64,"Hinweis"
' Filepicker (Datei-Dialog)
sUrl = FileOpenDialog ("Bitte wählen Sie eine Calc-Datei aus!")
if sURL = "" then
Msgbox "Sie haben den Dateidialog abgebrochen!" &
chr(10) & _
"Starten Sie das Programm erneut und wählen eine
Calc-Datei aus!", 48, "Fehler: Anwender hat Dateiauswahl abgebrochen!"
exit sub
end if
sExt=getFileNameExtension(sURL)
' Fehlermeldung für den Fall, dass kein Calc-Dokument
ausgewählt wurde
if sExt <> "ods" then
MsgBox("Bitte wählen Sie ein Calc-Dokument aus!" &
chr(10) & _
"Das Programm wird beendet!" & chr(10) &
chr(10) & _
"Starten Sie das Programm erneut.", 48,
"Fehler: Dateiauswahl")
exit sub
end if
REM Calc-Datei im Hintergrund öffnen
>>>>> MsgBox ("VOR FileOperation")
FileOperation
>>>>> MsgBox ("NACH FileOperation")
' MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
'oCC.getFrame().getContainerWindow().setVisible(True)
Exit Sub
REM ErrorHandler für den Fall, dass im Dateidialog auf "ABRUCH" geklickt
wurde
ErrorHandler:
'MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"
Msgbox "Sie haben den Dateidialog abgebrochen!" & chr(10) & _
"Starten Sie das Programm erneut und wählen eine Calc-Datei
aus!", 48, "Fehler: Anwender hat Dateiauswahl abgebrochen!"
End Sub
REM
════════════════════════════════════════════════════════════════════════════════════════════════════════
REM Calc-Datei im Hintergrund öffnen
REM Dateioperation: Datei öffnen und auslesen
Sub FileOperation
'oCC.getFrame().getContainerWindow().setVisible(False)
' Eigenschaften
>>>>> Dim myFileProperties(0) As New com.sun.star.beans.PropertyValue
' Dokument im Hintergrund öffnen
>>>>> myFileProperties(0).Name = "Hidden"
>>>>> myFileProperties(0).Value = False
REM
-------------------------------------------------------------------------------------------------------
' Datei im Hintergrund öffnen
>>>>> MsgBox ("FileOperation: VOR StarDesktop.loadComponentFromURL")
>>>>> sURL = ConvertToURL(sURL)
>>>>> oDocC = StarDesktop.loadComponentFromURL(sURL, "_blank", 0,
myFileProperties())
>>>>> MsgBox ("FileOperation: NACH StarDesktop.loadComponentFromURL")
'mri oDocC
' Daten aus Tabelle einlesen und in die Arrays verteilen
' mArray1() = Daten für die linke Seite (gerade Seitenzahl)
mArray1()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A1:B10").getDataArray()
' mArray2() = Daten für die rechte Seite (ugerade
Seitenzahl)
mArray2()=oDocC.Sheets().getByName("KopfZeilenTexte").getCellRangeByName("A11:B20").getDataArray()
REM
-------------------------------------------------------------------------------------------------------
' Calc-Datei korrekt schließen
CALL CloseDocC
End Sub
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Context
- Re: [de-users] Versionsabhängiges Einfrieren von LibreOffice nach Makrodurchlauf · OoOHWHOoO
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.