Ich schreibe Skript, das alle Makro-fähigen Word-Dokumente in einem Ordner durchläuft und ein Makro über die Befehlszeile ausführt.Exit-Code für Word VBA-Makro?
Mein Makro zählt Seiten und wenn die Anzahl genau 1 ist, sendet das Dokument an den Drucker.
Da ich eine Menge Dokumente bearbeiten werde (manchmal bis zu 200 gleichzeitig), möchte ich es durchgehen lassen und mit einem Code ungleich Null beenden, damit ich diese Ereignisse abfangen und zurückmelden kann für den Benutzer.
Aber Application.Quit
bietet keine Möglichkeit, einen Beendigungscode anzugeben. Gibt es eine andere Möglichkeit, das Dokument so zu beenden, dass mein Skript davon erfahren kann?
EDIT: Code wie angefordert. Ersetzen Sie/path/to stop mit tatsächlichen Pfaden.
function bulkPrint() {
// Get folder of files
$files = scandir("/path/to/my/files/");
$output = "";
$exitCode = -1;
// Loop through each file
foreach($files as $file) {
// Not real paths
exec("/path/to/winword.exe /q /x /mMyMacro \"/path/to/my/files/" . $file . "\"", $output, $exitCode);
echo $exitCode; // Always returns 0 because Word exited cleanly
}
}
beenden Können Sie Ihren Code bekannt geben? Wie läuft das "Makro von der Kommandozeile"? Ich denke, es wäre viel einfacher, nur den Makro-Return-Status zu haben. – Comintern
vielleicht Sie wollen, ist: 'Sub Quit() MsgBox "quit" Exit Sub End Sub ' – Andy
@Andy: Das gerade die Unter verlässt und beenden Sie Word nicht und geben einen Nicht-Null-Code. – Grayda