Fehler in LibreOffice bei "com.sun.star.bridge.OleObjectFactory"

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

Moderator: Moderatoren

Stephan
********
Beiträge: 10471
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Fehler in LibreOffice bei "com.sun.star.bridge.OleObjectFactory"

Beitrag von Stephan » Mi, 16.05.2018 14:37

Hallo,

Es gelingt mir in LO (getestet 5.1.6) nicht auf den Inhalt einer Variable zuzugreifen, der durch Ausführen eines VBScripts über die 'automation bridge' erzeugt wurde. Die Fehlermeldung kommt in Zeile:

Code: Alles auswählen

rueck = WSH.CodeObject.x
und lautet:

BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.uno.RuntimeException
Message: [automation bridge] Could not get FUNCDESC for x.


Gibt es diesbezüglich in LO etwas Besonderes zu beachten?

Die allgemeine Funktion der 'automation bridge' ist ansonsten einwandfrei, siehe z.B. die beispielhafte Msgbox im untenstehenden Code.
(Hinweis: in OO (getestet 4.1.2) tritt der Fehler nicht auf)


mein Code ist:

Code: Alles auswählen

Sub WSH_test()
	'kopiert Adressen aus Kontakte-Ordner von Outlook in eine Tabellendatei
	'und meldet diese Tabellendatei als Datenbank namen "Outlook_Kontakte" in OO an
	
	Dim OleService As Object
	Dim WSH As Object
	Dim vbs
	Dim i, j
	
	Dim rueck
	
	If getGuiType() <> 1 Then
		Msgbox "Dieses Makro funktioniert nur unter dem Betriebssystem MS Windows.", 16, "Abbruch"
		Exit Sub
	End If

	OleService = CreateUnoService("com.sun.star.bridge.OleObjectFactory")
	WSH = OleService.CreateInstance("MSScriptControl.ScriptControl")
	WSH.Language = "VBScript"
	
	vbs = vbs & "x = Array(1,2,3)" + CHR(10)
	vbs = vbs & "Msgbox 3+4" 

	WSH.ExecuteStatement(vbs)

	rueck = WSH.CodeObject.x
	
	For i = 0 To UBOUND(rueck)
		j = j & rueck(i) & CHR(13)
	Next i
	
	Msgbox j
	
End Sub

Gruß
Stephan