Set

Hallo,

habe ne dumme Frage:

was bedeutet Set in VB-Script wie z. B. Set ObjectShell = Wscript.createobject(„wscript.shell“)

Hi!

Die Frage ist durchaus nicht dumm!

Mit dem Schlüsselwort „Set“ bindest Du in VB allgemein eine Objektreferenz an eine Variable oder Eigenschaft.

Dieses kleine Beispiel veranschaulicht, daß Du mit „Set“ ein Object an eine beliebige Variable vom Typ „Object“ binden und dann damit arbeiten kannst. Unten stehendes Programm weist einer Variable das Object Form1 zu, mit welchen Du dann die selben Aktionen durchführen kannst, als ob Du direkt mit Form1 arbeiten würdest:

Private Sub HowSetWorks()

Dim myVar As Object 'Oder auch … As Form

Set myVar = Form1 'Form1 der Variable zuweisen
myVar.Show 'anstatt Me.Show
myVar.Hide 'anstatt Me.Show
Set myVar = Nothing 'Variable wieder lösen

End Sub

Du kannst aber auch ein unabhäbgiges neues Form1 erstellen oder klonen, indem du bei der Set-Anweisung ein „New“ hinzufügst:

Private Sub HowSetWorks()

Dim myVar As Object 'Oder auch … As Form

Set myVar = New Form1 'Neues Form1 der Variable zuweisen
myVar.Show 'anstatt Me.Show
myVar.Hide 'anstatt Me.Show
Set myVar = Nothing 'Variable wieder lösen

End Sub

Die Objekte können aber auch Variablen, Funktionen und Methoden sein, die als Objekte agieren.

In Deinem Beispiel bindest du das Scriptingobjekt „Shell“ an die Variable ObjectShell. Die Anweisung Object.CreateObject erstellt oder instanziert erst das Objekt und bindet es dann an die Variable - so üblich, bei „externen“ Objekte.

Mehr dazu in der MSDN unter

Bis die Tage, Stefan.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]