Excel 2010 Embedded mit Macro

  • Hallo zusammen,

    ich möchte eine Excel 2010 Datei mit Macros Embedded starten. Im Forum bin ich natürlich auch fündig geworden. Leider beendet sich bei mir das Script mit folgendem Fehler in der Ausgabe:

    D:\Test\test.au3 (45) : ==> The requested action with this object has failed.:
    $Obj1.Application.Run("Align_Z")
    $Obj1.Application.Run("Align_Z")^ ERROR

    leider kenne ich mich mit der Object gesteuerten Programmierung nicht so gut aus. Meine erste Vermutung war, das es mit Excel 2010 zusammenhängt. Daher habe ich es mit einer im alten 2003-Format gespeicherten ExcelDatei versucht - das gleiche Ergebnis.

    Das Excel-Macro in einem normal gestarteten Excel-Fenster macht was es soll.

    Ich bin mit meinem Latein am Ende, weiß jemand woran es liegt und wie man es beheben kann?

    Vielen Dank

    MfG Jescho

    Jeder hat mal klein angefangen - aber nicht jeder kommt groß raus!

    Einmal editiert, zuletzt von Jescho (28. Oktober 2013 um 14:51)

  • Wenn du mit COM Objekten arbeitest, baue immer ein ErrorHandler ein.

    z.B.

    [autoit]

    $oAccess = ObjGet($FilePath, "Access.Application")

    [/autoit][autoit]

    Func _ErrFunc($oError)

    MsgBox(48 + 262144, "Fehler", "Es kam zu einem Fehler.")

    $error = "err.number ist: " & @TAB & $oError.number & @CRLF & _
    "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
    "err.description ist: " & @TAB & $oError.description & @CRLF & _
    "err.source ist: " & @TAB & $oError.source & @CRLF & _
    "err.helpfile ist: " & @TAB & $oError.helpfile & @CRLF & _
    "err.helpcontext ist: " & @TAB & $oError.helpcontext & @CRLF & _
    "err.lastdllerror ist: " & @TAB & $oError.lastdllerror & @CRLF & _
    "err.scriptline ist: " & @TAB & $oError.scriptline & @CRLF & _
    "err.retcode ist: " & @TAB & $oError.retcode & @CRLF & @CRLF

    [/autoit][autoit][/autoit][autoit]

    ConsoleWrite($error)

    [/autoit][autoit][/autoit][autoit]

    EndFunc ;==>_ErrFunc

    [/autoit]

    Muss natürlich auf Excell umschreiben...
    Hier findest du dan ganz einfach heraus, warum dein Script mit dem Objekt nicht kommunizieren kann.

    • Offizieller Beitrag

    Das Skript funktioniert so, wie es ist.
    Das Problem liegt wohl in Windows und/oder MS-Office begraben. (Zugriffsrechte)
    Lösche mal das Makro aus der Arbeitsmappe und speicher diese ab.
    Dann Mappe öffnen, Makro mit Rekorder aufzeichnen unter demselben Namen ("Align_Z") und abspeichern.
    Arbeitsmappe schließen und dann das AutoItskript starten - nun funzt alles wie gewollt. ;)

  • Welche Version von Office 2010 verwendest Du? 32 oder 64 bit?

  • Danke, Fehler gefunden. Hatte das Macro unter Diese Arbeitsmappe und nicht unter Module gespeichert, nice.

    @rynow, dass werde ich mir mal ansehen, danke

    water, 32 bit

    MfG Jescho

    Jeder hat mal klein angefangen - aber nicht jeder kommt groß raus!