PDA

Vollständige Version anzeigen : VBScript mit Parameterübergabe per VBA aufrufen


UweP
05.06.2012, 15:01
Hallo zusammen,

kennt jemand eine Methode (Code-Schnipsel) mit der man aus VBA heraus ein VBS starten und dabei Parameter (z.B. Zi-Nr) übergeben kann?
Das VBScript starte ich in Access so:
-------------------------------------
Private Sub btnTest_Click()
Dim WSHShell As Object
Dim strzimmer As String

strzimmer = "2.098."

Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run """\\Server\Verzeichnis\Alarmtest.vbs"""
Set WSHShell = Nothing

End Sub
------------------------------------

...und hier das Script
----------------------
KonvertTemp()

Sub KonvertTemp()
temp = InputBox("Geben Sie die Zimmer-Nr ein.", 1)
MsgBox "Alarmaufruf in " & Zimmer (temp) & " <<<."
End Sub

Function Zimmer (ZiNr)
Zimmer = ZiNr
End Function
------------------------

Währe schön wenn jemand was wüsste. Bisher habe ich nichts brauchbares gefunden.

Gruß und Danke im Vorraus
UweP

IngGi
05.06.2012, 15:47
Hallo Uwe,

die Zahl 5 kannst du als Argument folgendermaßen an dein VBScript übergeben:

WSHShell.Run "\\Server\Verzeichnis\Alarmtest.vbs 5"

Und den Text "Hallo Welt!" so:

WSHShell.Run "\\Server\Verzeichnis\Alarmtest.vbs ""Hallo Welt!"""

Mehrere zu übergebende Argumente werden mit Leerzeichen getrennt übergeben, also zum Beispiel:

WSHShell.Run "\\Server\Verzeichnis\Alarmtest.vbs ""Hallo Welt!"", 5"

In dem VBScript steht das Hauptprogramm dann allerdings nicht zwischen

Sub irgendwas()

und

End Sub

Lass die beiden Zeilen einfach weg. Lediglich Unterprogramme oder Functions innerhalb desselben Scriptes werden analog zu VBA so abgegrenzt.

Im Script selbst werden die übergebenen Argumente dann folgendermaßen übernommen:

Dim oArgs
Set oArgs = WScript.Arguments

Die Objektvariable oArgs kann dann wie ein (0-basiertes) Array ausgelesen werden. Das erste übergebene Argument erhältst du folglich mit

MsgBox oArgs(0)

Gruß Ingolf

UweP
06.06.2012, 07:32
Vielen Dank IngGi,

genau das was ich suchte.

Gruß
Uwe