![]() |
Start von Word mit Parametern II |
|
|
Während das Aus diesem Grund ist für Windows Vista (x64) und Windows 7 eine Anpassung notwendig, auf die mich freundlicherweise Martin Rumpf hingewiesen hat - an dieser Stelle ein herzliches Danke dafür). Winword.exe /mAufruf /pMeinMakro "/p1'Parameterwert01 mit Leerzeichen' /p2'Parameter02 ' _ /p3'Parameter03 0815 4711' /p4'Parameter04'" Als funktionierende Alternative kann der Parameterblock in Anführungszeichen und die einzelnen Parameter in einfache Anführungszeichen (') gefasst werden. Zusätzlich muss dann natürlich die Auswerteroutine angepasst werden:
Sub Aufruf() ' Wichtig: _ Diese Hilfsfunktion wertet die Kommandozeile aus und MUSS vorhanden sein Dim s As String Dim sProz() As String, sPara() As String Dim sMakro As String Dim sProzedur As String Dim iPos As Integer Dim sParameter() As String s = ShowCommandline ' API zum Auslesen der Kommandozeile ' Anführungszeichen entfernen s = Replace(s, Chr(34), "") sProz() = Split(s, "/m") ' Makroname abtrennen If UBound(sProz()) = 0 Then MsgBox "Word wurde ohne Parameterliste aufgerufen.", vbInformation, "" Exit Sub End If sPara() = Split(sProz(1), "/p") 'Prozeduren und Parameter abtrennen ' Makroname sMakro = Trim(sPara(0)) ' Aufzurufende Prozedur sProzedur = Trim(sPara(1)) ' Parameter-Array ermitteln ReDim sParameter(UBound(sPara) - 2) ' Schleife über alle angegebenen Parameter For iPos = 2 To UBound(sPara) ' HochKomma entfernen sParameter(iPos - 2) = Replace(Mid(sPara(iPos), InStr(1, sPara(iPos), Chr(39))), Chr(39), "") Next iPos On Error GoTo err_Call ' Angegebene Prozedur aufrufen ' sProzedur: Name des Makros, das die Kommandozeile auswertet ' sMakro: Name des aufzurufenden Makros ' s: Komplette Kommandozeile ' sParameter(): Array mit allen angegebenen Parametern Application.Run sProzedur, sProzedur, sMakro, s, sParameter() Exit Sub err_Call: MsgBox "Fehler in der Kommandozeile:" & vbCrLf & s End Sub Die Auswertung und der Aufruf des angegebenen Makros erfolgt unverändert in der Prozedur Aufruf. |
| Besucher: 0 online | 0 heute | 0 diesen Monat | 2521424 insgesamt | Seitenaufrufe: 73 | Letzte Änderung: 07.06.2010 | © 2001-18 Christian Freßdorf | ||||
|
Vielleicht sollten wir uns von dem Aberglauben lossagen, alles verstehen zu müssen und uns zur Einsicht bekehren, im Höchstfall imstande zu sein, mit unserem Unverständnis verständnisvoll umgehen zu können. Margot Bickel |
powered by phpCMS and PAX | |||||