Hallo newgui,
der Aufruf eines Excel-Makros über den GuiXT-Befehl Image ist ein wenig komplizierter als bei Pushbutton. Das erste Problem liegt darin, dass das Inputfield zuerst immer gelesen werden muss bevor es weiter gereicht werden kann. Ein Image-Befehl ruft zuerst ein Skript namens Datei1.vbs auf.
Image (1,3) "C;\guixt\Images\test.jpg" Start="C:\Test\Datei1.vbs" -nobuffer -plain
Datei1.vbs:
set wshell = createObject("Wscript.Shell")
wshell.run "c:\programme\sap\frontend\sapgui\guixt.exe" & " Input=" & chr(34) & "OK: process=" & "c:\test\Datei1.txt" & chr(34)
Hinweis: zwischen ..."OK: process... ist kein Leerzeichen
Das Skript startet wiederum ein GuiXT-Skript namens Datei1.txt.
Datei1.txt:
set V[apo] "apostroph"
copytext fromstring="apo" totext="t1"
replacetext "t1" from="apostroph" tohexcode="22"
copytext fromtext="t1" tostring="apo"
start "c:\Test\excel.vbs" parameters="&V[apo]&V[X_Projekt]&V[apo]"
Damit man u.U. auch Parameter mit Leerzeichen übergeben kann, hat man sie zusätzlich zwischen 2 Apostrophe platziert. Wenn der Parameter X_Projekt keine Leerzeichen enthält, reicht auch folgende Befehlszeile:
start "c:\Test\excel.vbs" parameters="&V[X_Projekt]"
Das Skript Excel.vbs erwartet einen Parameter = X_Projekt.
Excel.vbs:
Set xcl = createObject("Excel.Application")
set wbk = xcl.Workbooks.open("c:\Test\Datei1.xls")
xcl.ScreenUpdating = true
xcl.Visible = True
xcl.DisplayAlerts = true
xcl.Run "Test_Makro", wscript.arguments(0)
'wbk.close
'set wbk = nothing
'xcl.quit
'set xcl = Nothing
Das Test_Makro in Datei1.xls ist ein normales Makro und kein Workbook_Open und auch nicht Auto_Open.
Sub Test_Makro(ByVal X_Projekt As String)
Selection.AutoFilter Field:=4, Criteria1:="=" & X_Projekt, Operator:=xlAnd
End Sub
Mit Pushbutton hätte man Datei1.vbs gleich weglassen können. Der Einstieg erfolgt dann z.B. wie folgt:
Pushbutton (2,3) "@9E\QTest@Excel-Makro" Process="c:\Test\Datei1.txt"
Ich hoffe, dass es am Ende auch in deiner Umgebung funktioniert und wünsche viel Spaß beim Testen. Mit HTML muss ich leider passen.
Freundliche Grüße
ScriptMan
Bearbeitet vom Benutzer
vor 14 Jahre
|
Grund: Nicht angegeben