Also einen Fehler sehe ich definitiv:
[autoit]
Global $sOutFileName
For $i = $iStart To $iEnde
$oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext
$sOutFileName = $sSpeicherpfad & "\" & $i & ".jpg"
$oDocref.SaveAs($sOutFileName, $oJpgSaveOptions, True)
$sSpeicherpfad ist nicht der Pfad, sondern beinhaltet lediglich die ControlID deines Labels, also eine Zahl. Du kannst hier entweder $rSpeicherpfad verwenden, oder aber du verwendest
[autoit]guictrlread($sSpeicherpfad )
[/autoit]Falls das nicht die Ursache für den COM Fehler sein sollte würde ich anhand der Zeilennummer vermuten, dass diese Zeile falsche Werte beinhaltet:
[autoit]$oDocref.ArtLayers($iTextebene).TextItem.Contents = $sVortext & $i & $sNachtext
[/autoit]Daher würde ich vor dieser Zeile etwas Debugging betreiben und mir die Variableninhalte ausgeben lassen:
[autoit]
consolewrite($iTextebene & " / " & $sVortext & " / " & $i & " / " & $sNachtext & @crlf)
Ahja jetzt beim schreiben fällt mir auf, dass hier sehr sicher ein Fehler steckt, denn du begehst den selben Fehler wie auch schon bei der Variable $sSpeicherpfad. Das Problem sollte also nach Korrektur dieser Variablen behoben sein.
EDIT:
Kleiner Nachtrag noch... Globale Variablen sollte man grundsätzlich am Scriptanfang und niemals innerhalb von Funktionen deklarieren, andernfalls kann das Script abstürzen wenn eine Funktion die Variable nutzen möchte bevor die deklarierende Funktion aufgerufen wurde. Nach Möglichkeit sollte man globale Variablen generell sparsam einsetzen. Soweit ich das sehe benötigst du die Variablen außerhalb deiner Start Funktion aber garnicht, sondern lediglich innerhalb der Funktion. Daher solltest du diese auch lokal deklarieren.