Dokument über OLE in Excel einbetten



  • Hallo, ich versuche, über OLE ein Excelblatt zu füllen und will dabei ein PDF Dokument einbetten.

    Variant Excel = CreateOleObject("Excel.Application"); 
    Excel.OlePropertySet("Visible", true);
    Excel.OlePropertySet("DisplayAlerts", false);
    Excel.OlePropertySet("EnableEvents", true);
    Variant WB = Excel.OlePropertyGet("WorkBooks");
    WB.OleFunction( "Add" );
    Variant AWB = Excel.OlePropertyGet("ActiveWorkBook");
    Variant WS = Excel.OlePropertyGet("Worksheets");
    WSA = WS.OlePropertyGet("Item", 1);
    WSA.OleFunction("Activate");
    Variant Cell = WSA.OlePropertyGet("Cells", 1, 1);
    Cell.OleFunction( "Activate" );
    WSA.OlePropertyGet("Shapes").OleFunction("AddOLEObject", "test.pdf", false, false).OleFunction("Select");
    

    Dabei bekomme ich den Fehler "Ole-Fehler 800A03EC"
    Die Datei test.pdf liegt im Verzeichnis der Exe-Datei.

    Bei einem Veruch mit

    WSA.OlePropertyGet("OLEObjects").OleFunction("Add", "test.pdf", false, false).OleFunction("Select");
    

    erhalte ich den Fehler: "Die Add-Methode des OLEObjects-Objektes konnte nicht ausgeführt werden".

    Mittels

    WSA.OlePropertyGet("OLEObjects").OleFunction("Add", "AcroExch.Document");
    

    kann allerdings ein PDF-Dokument eingefügt werden. Nach dem Aufruf öffnet sich ein "Datei öffnen" Dialog. Der Anwender weiß allerdings nicht, wo die Datei liegt und es handelt sich auch nicht zwingend um ein PDF.



  • Hallo,

    WSA.OlePropertyGet("OLEObjects").OleFunction("Add", "test.pdf", false, false).OleFunction("Select");

    Kann es sein, dass du nicht nur den Dateinamen sondern auch den Pfad zur Datei angeben musst?

    z.B. "C:\Temp\test.pdf"

    Gruß
    Torsten



  • Das habe ich natürlich auch schon versucht. Hat leider nicht funktioniert.


Anmelden zum Antworten