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
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