DOS von Makros (Microsoft Excel)
Makros sind eine wunderbare Möglichkeit, die Funktionalität eines Programms wie Excel zu erweitern. Möglicherweise möchten Sie diese Funktionalität jedoch noch weiter erweitern, indem Sie eine DOS-Batchdatei über Ihr Makro ausführen. In Excel können Sie dies mit dem Befehl Shell tun. Die allgemeine Syntax für den Befehl lautet wie folgt:
dRetVal = Shell("myfile.bat", mode)
Innerhalb der Anführungszeichen können Sie den vollständigen Pfadnamen und den Dateinamen der Datei platzieren, die Sie ausführen möchten. Auf einigen Systemen können Probleme auftreten, wenn Sie einen Pfadnamen mit der Dateispezifikation verwenden. (Dies scheint den hässlichen Kopf zu beschneiden, wenn Sie komplexe Pfadnamen haben oder wenn der Pfadname Leerzeichen enthält.) Wenn Sie dieses Problem haben, verwenden Sie einfach den Befehl ChDir direkt vor Shell, um das von Excel verwendete Verzeichnis zu ändern. Sie können Shell dann nur mit einem Dateinamen ausführen.
Die Modusanzeige teilt Excel einfach mit, wie das Fenster geöffnet werden soll, damit die Datei angezeigt wird. Die Modusanzeige kann eine der folgenden sein:
Value |
Variable Nam |
Meaning |
||
0 |
vbHide |
Window is hidden and has focus. |
||
1 |
vbNormalFocus |
Window is the normal size and has focus. |
||
2 |
vbMinimizedFocus |
Window is minimized and has focus. |
||
3 |
vbMaximizedFocus |
Window is maximized and has focus. |
||
4 |
vbNormalNoFocus |
Window is normal size, but doesn’t have focus. |
||
6 |
vbMinimizedNoFocus |
Window is minimized, but doesn’t have focus. |
Der Shell-Befehl gibt einen Wert zurück, der die Programm-ID der von Ihnen ausgeführten Datei angibt, oder eine Null. Wenn eine Null zurückgegeben wird, ist beim Ausführen der Datei ein Fehler aufgetreten.
Sie sollten sich daran erinnern, dass bei Verwendung von Shell die Zieldatei sofort und unabhängig von Excel ausgeführt wird. Dies bedeutet, dass der nächste Makrobefehl in Ihrem Excel-Makro sofort ausgeführt wird, ohne auf den Abschluss der Shell-Zieldatei zu warten. Wenn Sie einen Weg finden, um dieses Verhalten zu umgehen, könnte Sie diese Seite auf der Website von Chip Pearson interessieren:
http://www.cpearson.com/excel/ShellAndWait.aspx
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (9843) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: