Objektvariable nicht belegt

Hallo,

ich will eine EMail erstellen per Makro.

Hier ist der Code:

Dim sPMUA As String
Dim sEmail As String
Dim sSubject As String
Dim sAttachment As String
Dim sBody As String
Dim sMessage As Object
Dim oShell As Object

        oShell = createUnoService("com.sun.star.system.SystemShellExecute")

        sPMUA = "/Applications/Thunderbird.app/Contents/MacOS/thunderbird"
        sEmail = "strunzenolwin@gmx.de"
        sSubject = "Ich bin ein Betreff"
        sAttachment="file:///Users/strunz/Documents/Foto.jpeg"
        sBody = "Hallo ich bin der Body"

        sMessage = sPMUA & _
        " -compose to=" & sEmail & _
        ",bcc=user@example.example" & _
        ",subject='" & sSubject & "'" & _
        ",attachment='"& sAttachment & "'" & _
        ",preselectid=id10" & _
        ",body='" & sBody & "'"

         oShell.execute(sMessage)

End Sub

Allerdings erhalte ich folgende Aussage (Objektvariable nicht belegt
(sMessage = sPMUA &_)

Was muss ich tun?

Mfg

Strunzenolwin

Hei Strunzenolwin,

versuche es einfach mal mit :

Dim sMessage As String

statt

Dim sMessage As Object

...denn was du übergibst, ist lediglich ein String (Text) - kein Objekt.

Wenn Du es explizit deklarierst, gibt es auch einen Fehler. Der Shell.execute() Befehl erwartet im Übrigen einen String, kein Objekt;)

viele Grüße
Thomas

Bitte keine Direktantwort an mich! Button "Liste antworten" nutzen.

Zum Thema:

Ich weiss ja nicht, wo Du den Code her hast - und was Du erreichen willst. Dein "Shell-Objekt" besitzt eine Methode "execute()", diese erwartet 3 Parameter - siehe auch API Dokumentation https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1system_1_1XSystemShellExecute.html

Schon das erfüllt Dein Code nicht. Ich habe Dir nur einen Fehler im Code aufgezeigt (String statt objekt) - das heisst aber nicht, dass der Rest nicht auch fehlerhaft ist.

Teste Deinen Befehlsstring unbedingt vorher mal manuell auf der Systemshell (also der Eingabeaufforderung) ob er überhaupt korrekt ist - wenn es dort auch nicht funktioniert, geht es mit dem shell-Befehl auch nicht.

Im Übrigen: Dein erzeugtes Shell-Objekt heisst oShell - den Begriff musst Du natürlich auch verwenden....

VG

Thomas