Sesame Script Variablen und Konstanten

Von The Microsoft Scripting Guys

Dn308958.6A5AAD34598D72DB8BEFD4A5A0F1971E(de-de,TechNet.10).png

Sie kennen sicher den alten Spruch "Bitte darum, so wird Dir gegeben" – Sie wissen schon, der Spruch, der scheinbar selten funktioniert. (Jedenfalls funktionierte er nicht, als die Scripting Guys um sechs Wochen Urlaub in Hawaii baten.) Diesmal funktionierte er tatsächlich. Sie baten um mehr einführende Artikel zur Skriptprogrammierung, also stellen wir Ihnen eine neue Serie monatlich erscheinender Artikel vor, die für Anfänger gedacht sind. Willkommen zu Sesame Script!

Lesen Sie auch die bisherigen Artikel im Sesame Script-Archiv.

Auf dieser Seite

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Was machen wir hier?

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Gibt es hier ein Echo?

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Variablen

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Wofür werden Variablen benötigt?

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Ungarische Variablen

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Konstante Variablen?

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Erweiterte Konstanten

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png VBScript-Konstanten

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Weitere erweiterte Konstanten

Dn308958.ACDCF196BC98A92A7E35715F19C8C405(de-de,TechNet.10).png Skript-Puzzles

Was machen wir hier?

Wir Scripting Guys fragen uns dies jeden Tag selbst. Schlimmer ist jedoch, wenn unsere Vorgesetzten uns fragen "Was macht Ihr hier?", und wir haben keine Antwort parat. Was allerdings den vorliegenden Artikel angeht, nun, wir haben ja schon erklärt, dass… Sie abgestimmt und wir uns der überwältigenden Mehrheit gebeugt haben. Unter den Stimmen, die nach mehr Anfängerinformationen verlangten, gab es große Unterschiede bezüglich der Gründe und der Art der verlangten Informationen. Darunter waren absolute Anfänger, die nichts über die Skriptprogrammierung wissen, Programmierer, die die Einzelheiten der Skriptprogrammierung nicht kennen, sowie Anfragen, die dazwischen angesiedelt sind. Wie können wir also jeden glücklich machen?

Nun, das können wir wahrscheinlich nicht, wir werden jedoch unser Bestes geben. Senden Sie uns also weiterhin E-Mails (in englischer Sprache), und lassen Sie uns wissen, was Sie an dieser Stelle lesen möchten. Denken Sie auch daran, dass Sie im Script Center eine Menge weiterer hervorragender Artikel finden, die Sie dabei unterstützen, mehr über die Skriptprogrammierung zu erfahren. Führen Sie auf der Startseite des Script Center (in englischer Sprache) einen Bildlauf nach unten zum Abschnitt "Regular Features" aus, um mehr zu erfahren.

Wir beginnen heute mit einer kurzen Erklärung des Befehls Wscript.Echo, den Sie bereits aus unserem einführenden Artikel "Scripting: Your First Steps" (in englischer Sprache) kennen. Danach beginnen wir mit einer Einführung in einige grundlegende Konzepte der Skriptprogrammierung, um Sie beim Schreiben und Bearbeiten von Skripts zu unterstützen. Wir werden auch ein paar Beispiele einstreuen, die etwas komplizierter sind, und Ihnen mitteilen, wo Sie weitere Informationen dazu finden. Verpassen Sie nicht unser neues Bonus-Feature! (Sie müssen schon den gesamten Artikel lesen, um herauszufinden, worum es sich dabei handelt. Na gut, Sie müssen nicht alles lesen, Sie können auch einfach nach unten scrollen, dabei lernen Sie allerdings nicht viel. Was hätten Sie davon?)

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).png Zum Seitenanfang

Gibt es hier ein Echo?

Beginnen wir mit einer kurzen Erklärung eines sehr wichtigen Skriptbefehls: Wscript.Echo. Dieser Befehl wurde schon im ersten Artikel verwendet, damals jedoch nicht erklärt. Es ist ganz einfach. Angenommen, Sie schreiben ein Skript, das das aktuelle Datum und die aktuelle Uhrzeit ermittelt:

Now

Ja, das ist alles. Dieses kurze Wort wird als VBScript ausgeführt und ermittelt Datum und Uhrzeit. Das einzige Problem besteht darin, dass der Computer zwar Systemdatum und -zeit abgerufen hat, Ihnen das Ergebnis jedoch nicht mitgeteilt wird. Das ist in etwa so, als wenn Sie Ihren Kindern sagen, sie dürften nicht fernsehen, und ihnen dann auch noch sagen müssen, dass sie den Fernseher tatsächlich ausschalten sollen. Auch bei Computern müssen Sie sich sehr deutlich ausdrücken. Die Anweisung "Ermittle das Datum für mich" beinhaltet noch nicht die Anweisung "Teile mir das Ergebnis mit". Für diesen Zweck gibt es Wscript.Echo:

Wscript.Echo Now

Jetzt können Sie das aktuelle Datum und die aktuelle Zeit auch tatsächlich sehen. Mit Wscript.Echo können viele unterschiedliche Informationen, von einer einfachen Fehlermeldung bis hin zu den Ergebnissen einer Active Directory-Abfrage, angezeigt werden. Probieren Sie den Befehl ein wenig aus. Führen Sie folgendes Skript aus, und sehen Sie sich das Ergebnis an:

Wscript.Echo "Line One"
Wscript.Echo 100
Wscript.Echo 100 + 100
Wscript.Echo "100 + 100"
Wscript.Echo Now
Wscript.Echo "Now"

Hinweis


Erinnern Sie sich: Bereits im ersten Artikel wurde erwähnt, dass Wscript.Echo ohne die Verwendung von cscript die Ausgabe in einem Meldungsfeld anzeigt. Wird der Befehl unter Verwendung von cscript von der Befehlszeile aus ausgeführt, erfolgt die Ausgabe im Befehlsfenster. Es gibt eine Methode namens MsgBox, mit der die Ausgabe immer in einem Meldungsfeld erfolgt, unabhängig davon, wie Sie das Skript ausführen. Diese Methode wird etwas später in diesem Artikel verwendet.

Weitere Informationen

Eingaben und Ausgaben – Microsoft Windows 2000 – Scripting-Handbuch

Echo Method – Windows Script Host Reference (in englischer Sprache)

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Variablen

Nach diesem wichtigen Schritt nehmen wir Sie mit in eine Zeit, die Sie längst vergessen haben oder von der Sie wahrscheinlich wünschen, dass Sie sie vergessen könnten. Für einige von Ihnen liegt diese Zeit nur ein paar Stunden, für andere ein paar Jahrzehnte zurück. Wir gehen zurück ins Gymnasium, in die gefürchtete Mathematikklasse. (Bleiben Sie bei uns, atmen Sie tief durch, alles ist in Ordnung.)

Zwei Züge fahren aufeinander zu, der eine mit 50 km/h, … nein, nein, wir reden nicht über dergleichen (Gott sei Dank!). Wir beginnen mit den Grundlagen: 1 + 1 = 2.

Sind Sie noch da? Gut. Wenn wir also nicht wissen, welches Ergebnis 1 + 1 hat, und wir möchten, dass Sie uns das Ergebnis mitteilen, sagen wir

1 + 1 = x

und fragen Sie, welchen Wert x hat. Die Skriptprogrammierung funktioniert sehr ähnlich, die Gleichung muss nur ein wenig umgestellt werden:

x = 1 + 1

Der Computer wird hier angewiesen, den Wert von 1 + 1 in x zu speichern. Wenn wir den Wert von x dann abfragen, wird 2 zurückgegeben. Probieren Sie das mit einem Skript aus:

x = 1 + 1
Wscript.Echo x

In diesem Skript wird x als Variable bezeichnet. Das macht Sinn, da der in x enthaltene Wert variieren kann:

x = 1 + 1
Wscript.Echo x
x = 2 + 2
Wscript.Echo x

Führen Sie dieses Skript aus, und Sie erhalten die Ausgabe

2
4

Wie Sie sehen, ist x nur ein Platzhalter für einen beliebigen Wert, den wir abfragen.

Sie fragen sich möglicherweise, was so speziell an x ist? Warum nicht a oder z? Warum nicht?

a = 1 + 1
Wscript.Echo a

Führen Sie dieses Skript aus, und Sie werden sehen, dass es mit a ebenso funktioniert wie mit x. Wie sieht es mit diesem Skript aus:

TheValueOfOnePlusOne = 1 + 1
Wscript.Echo TheValueOfOnePlusOne

Es ist unerheblich, welche Bezeichnung Sie für die Variable verwenden. Es ist sinnvoll, der Variable eine Bezeichnung zu geben, die Sie daran erinnert, welchen Wert sie enthält. Abgesehen davon können Sie jedoch einen beliebigen Variablennamen verwenden. (Es gibt lediglich ein paar Einschränkungen: Die Bezeichnung muss mit einem Zeichen des Alphabets beginnen, darf keine Punkte enthalten, muss weniger als 256 Zeichen haben und darf nicht mit einem vordefinierten VBScript-Schlüsselwort übereinstimmen. Wenn Sie einen Variablennamen mit mehr als 255 Zeichen verwenden möchten, naja, dann haben Sie mehr Probleme als wir hier lösen können.)

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Wofür werden Variablen benötigt?

Sie fragen sich vielleicht, warum Variablen überhaupt benötigt werden. Warum nicht einfach ein Skript wie das folgende schreiben:

Wscript.Echo 1 + 1

Das wäre sicherlich möglich. Es funktioniert und gibt den Wert 2 aus. Ein Skript, das tatsächlich nützliche Aufgaben erfüllt, ist jedoch üblicherweise etwas komplizierter als dieses Beispiel. Variablen sind in dem Fall sehr nützlich. Variablen werden häufig eingesetzt, um Werte darin zu speichern und diese Variablen im gesamten Skript zu verwenden. Sie können im Script Center beispielsweise viele Skripts finden, die folgende Zeile enthalten:

strComputer = "."

Der Punkt repräsentiert den lokalen Computer. Der Punkt wird in der Variablen mit dem Namen strComputer abgelegt. Das folgende Skript gibt das gerade ausgeführte Betriebssystem des lokalen Computers aus:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOSes
  Wscript.Echo "Computer Name: " & objOS.CSName
  Wscript.Echo "Caption: " & objOS.Caption 'Name
  Wscript.Echo "Version: " & objOS.Version 'Version & build
  Wscript.Echo "Build Number: " & objOS.BuildNumber 'Build
  Wscript.Echo "Build Type: " & objOS.BuildType
  Wscript.Echo "OS Type: " & objOS.OSType
  Wscript.Echo "Other Type Description: " & objOS.OtherTypeDescription
Next

(Machen Sie sich an dieser Stelle keine Gedanken über die Einzelheiten. Wie Sie sehen, handelt es sich im Wesentlichen ohnehin um eine Reihe von Wscript.Echo-Anweisungen, über die Sie schon alles wissen.) Das Skript kann auch ohne die Variable auskommen, wenn an jeder Stelle, an der strComputer steht, ein Punkt eingesetzt wird:

Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
 
Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOSes
  Wscript.Echo "Computer Name: " & objOS.CSName
  Wscript.Echo "Caption: " & objOS.Caption 'Name
  Wscript.Echo "Version: " & objOS.Version 'Version & build
  Wscript.Echo "Build Number: " & objOS.BuildNumber 'Build
  Wscript.Echo "Build Type: " & objOS.BuildType
  Wscript.Echo "OS Type: " & objOS.OSType
  Wscript.Echo "Other Type Description: " & objOS.OtherTypeDescription
Next

Was wäre jedoch, wenn Sie das Skript für einen Remotecomputer ausführen möchten? Dann müssen Sie jeden Punkt innerhalb des Skripts durch den Namen des Remotecomputers ersetzen. Und Sie müssen sicherstellen, dass Sie jeden Punkt finden. In diesem Skript befindet sich nur ein Punkt, aber das wird nicht in allen Fällen so sein. Wahrscheinlich erkennen Sie das Fehlerpotenzial in dieser Vorgehensweise. Wenn Sie den Computernamen in einer Variable ablegen, brauchen Sie nur den Computernamen auszutauschen, und Sie müssen sich keine Gedanken darüber machen, an welchen Stellen der Name verwendet wird. So erhalten Sie ein Skript, das für den aktuellen Computer und, durch einfaches Austauschen des Punktes gegen einen anderen Computernamen, auch für einen Remotecomputer (in diesem Fall server1) ausgeführt werden kann:

strComputer = "server1"
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOSes
  Wscript.Echo "Computer Name: " & objOS.CSName
  Wscript.Echo "Caption: " & objOS.Caption 'Name
  Wscript.Echo "Version: " & objOS.Version 'Version & build
  Wscript.Echo "Build Number: " & objOS.BuildNumber 'Build
  Wscript.Echo "Build Type: " & objOS.BuildType
  Wscript.Echo "OS Type: " & objOS.OSType
  Wscript.Echo "Other Type Description: " & objOS.OtherTypeDescription
Next

Nur die erste Zeile muss geändert werden.

Zu diesem Zweck werden Variablen verwendet.

Weitere Informationen

Variablen – Microsoft Windows 2000 – Scripting-Handbuch

VBScript Variables – VBScript User’s Guide (in englischer Sprache)

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Ungarische Variablen

Vielleicht haben Sie bereits den Begriff "Ungarische Notation" gehört. Vielleicht haben Sie auch noch nie davon gehört, gesehen haben Sie sie jedoch wahrscheinlich schon. Es ist die Bezeichnung für Variablen, die ungefähr so aussehen:

intComputers = 20
dtToday = #07/01/05#
strComputerName = "server1"

Variablen so zu benennen entspricht der üblichen Programmierpraxis. Dabei nehmen Sie einen Variablennamen, z. B. intComputers, bei dem Sie den Typ der darin gespeicherten Information als Präfix verwenden. Wenn Sie also die Variable intComputers für die Anzahl der Computer einsetzen, verwenden Sie einen Integer-Wert um die Anzahl zu bestimmen. Daher das Präfix int. Das ist auch schon alles. Dadurch kommen Sie nicht auf den Gedanken, dass intComputers die Computernamen, also Zeichenfolgen statt Integer-Werten, enthalten könnte.

Warum ungarisch? Weil die erste Person, die diese Art der Variablenbenennung vorgeschlagen hat, der Ungare Charles Simonyi war, ein früherer Microsoft Distinguished Engineer.

Weitere Informationen

Using Hungarian Notation – Microsoft Windows 2000 – Scripting-Handbuch (in englischer Sprache)

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Konstante Variablen?

Ein weiterer bekannter Spruch (zumindest in der Gegend, aus der wir stammen) sagt: "Wenn es aussieht wie eine Ente und quakt wie eine Ente, dann ist es wahrscheinlich auch eine Ente". Es gibt einen anderen Elementtyp in Skripts, der aussieht wie eine Variable und sich zumindest teilweise auch verhält wie eine Variable, mit dem Unterschied, dass es sich definitiv nicht um eine Variable handelt. Diese Elemente werden Konstanten genannt.

Es gibt ein paar Unterschiede zwischen einer Konstante und einer Variable. Der erste ist der, dass Sie bei einer Konstante angeben müssen, dass es eine Konstante ist. Dazu müssen Sie der Konstante das Wort Const voranstellen, wie hier:

Const x = "I’m a constant"

Ein weiterer Unterschied besteht darin, dass Sie einer Konstante ausschließlich einen Literalwert zuweisen können. Das heißt, folgende Anweisung dürfen Sie nicht verwenden:

Const x = 1 + 1

Sie müssen den tatsächlich gewünschten Wert zuweisen:

Const x = 2

Der größte Unterschied zwischen einer Konstante und einer Variable – jetzt aufgepasst, das verwirrt die Leute immer wieder – besteht darin, dass Sie die Konstante später im Skript nicht mehr ändern können. Erinnern Sie sich, dass wir gesagt haben, der Wert in einer Variable kann variieren (das macht "Variable" zu einer guten Bezeichnung für dieses Element)? Der Wert einer Konstante kann nicht variieren – er ist konstant (Ist das nicht praktisch?). Weiter oben wurde ein Skript vorgestellt, in dem eine Variable festgelegt und später im selben Skript geändert wurde:

x = 1 + 1
Wscript.Echo x
x = 2 + 2
Wscript.Echo x

Probieren Sie Folgendes aus:

Const x = 2
Wscript.Echo x
x = 4
Wscript.Echo x

Sie erhalten in der dritten Zeile (x = 4) eine Fehlermeldung, da x als Konstante deklariert und ein Wert (2) zugewiesen wurde, also kann ihr nicht später ein anderer Wert zugewiesen werden. Typischerweise verwenden Sie Konstanten für Werte, die niemals geändert werden sollen.

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Erweiterte Konstanten

Hier ein Beispiel mit praktischem Nutzen. (Lesen Sie diesen Hey, Scripting Guy-Artikel (in englischer Sprache), um eine vollständige Erklärung der Funktionsweise zu erhalten.) In diesem Beispiel liest das Skript alle Zeilen aus einer Textdatei und zeigt diese an. (Beachten Sie, dass sich eine Textdatei mit dem Namen Test.txt im Ordner C:\Scripts befinden muss, damit dieses Skript ordnungsgemäß ausgeführt werden kann.)

Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
    ("C:\Scripts\Test.txt", ForReading)
Do Until objTextFile.AtEndOfStream
    strTextLine = objTextFile.Readline
    Wscript.Echo strTextLine
Loop

Beachten Sie die erste Zeile des Skripts. Der Konstante ForReading wurde der Wert 1 zugewiesen. Wir gehen an dieser Stelle nicht auf Methoden, Parameter und dergleichen ein. Wir möchten hier nur erwähnen, dass Sie der Methode OpenTextFile den Wert 1 übergeben müssen, um eine Textdatei zu öffnen und daraus zu lesen. Der Konstante ForReading wurde der Wert 1 aus zwei Gründen zugewiesen: da wir, wenn wir uns das Skript ansehen, dadurch wissen, was die 1 bewirkt, und weil wir nicht möchten, dass dieser Wert geändert wird. Würden wir eine reguläre Variable verwenden und den Wert in 2 ändern, würde plötzlich durch die Variable ForReading die Textdatei zum Schreiben geöffnet. Das würde uns einige Kopfschmerzen bereiten.

Weitere Informationen

Konstanten – Microsoft Windows 2000 – Scripting-Handbuch

Creating Constants – VBScript User’s Guide (in englischer Sprache)

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

VBScript-Konstanten

Bevor wir jetzt jede Menge E-Mails erhalten, möchten wir noch erklären, dass es weitere Typen von Konstanten gibt. Sie könnten beispielsweise auf ein Skript stoßen, das ein Element verwendet, das aussieht wie eine Variable, da es nicht mit einer Const-Anweisung versehen wurde. Dennoch können Sie es nicht ändern. Probieren Sie folgendes Skript aus:

MsgBox "This is a message box", vbOKCancel

Damit wird ein Meldungsfeld mit den Schaltflächen OK und Abbrechen angezeigt. Versuchen Sie, den Wert von vbOKCancel zu ändern:

vbOKCancel = 5
MsgBox "This is a message box", vbOKCancel

Sie erhalten eine Fehlermeldung. Warum? Weil vbOKCancel eine Konstante ist. Es handelt sich um eine Konstante, die wir nicht selbst definieren müssen – VBScript hat dies für uns erledigt. Es gibt einen Standardsatz von Konstanten, der uns allein durch die Verwendung von VBScript zur Verfügung steht. (Auch andere Skriptsprachen verfügen über derartige Konstantentypen.) Durch diese Konstanten werden Farben, die Wochentage und (offensichtlich) die Schaltflächen des Meldungsfelds definiert. Da es sich hierbei um häufig verwendete Konstanten handelt, wurden diese bereits von VBScript definiert, sodass wir uns darum nicht zu kümmern brauchen. (Diese Konstanten sind einfach zu erkennen, da ihre Bezeichnungen alle mit "vb" beginnen. Es ist also am besten, eigene Variablen und Konstanten nicht auf die gleiche Art zu benennen.)

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Weitere erweiterte Konstanten

Sehen wir uns ein Skript aus einem kürzlich veröffentlichten Office Space-Artikel (in englischer Sprache) an:

Const wdLineStyleSingle = 1
Const wdLineStyleNone = 0

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection

i = 1

objDoc.Paragraphs(i).Range.Select
objSelection.ParagraphFormat.Borders.OutsideLineStyle = wdLineStyleSingle
objSelection.ParagraphFormat.Borders.Shadow = TRUE
objSelection.TypeText "This is the first paragraph."
objSelection.TypeParagraph()
i = i + 1

objDoc.Paragraphs(i).Range.Select
objSelection.ParagraphFormat.Borders.OutsideLineStyle = wdLineStyleNone
objSelection.TypeText "This is the second paragraph."
objSelection.TypeParagraph()
i = i + 1

objSelection.TypeText "This is the third paragraph."
objSelection.TypeParagraph()
i = i + 1

Dieses Skript erstellt ein Microsoft Word 2003-Dokument und versieht den ersten Absatz mit einem Rahmen. Wir sehen uns die ersten beiden Zeilen an:

Const wdLineStyleSingle = 1
Const wdLineStyleNone = 0

Wie Sie im Skript sehen können, wird jeder dieser Konstanten ein Wert zugewiesen, und jede Konstante wird nur einmal im Skript verwendet. Häufig wird die Frage gestellt "Warum wird nicht einfach eine Variable verwendet?". Dafür gibt es einige Gründe.

Der erste, den wir bereits erwähnt haben, ist, dass wir nicht möchten, dass diese Werte versehentlich irgendwo im Skript geändert werden. Damit das Skript ordnungsgemäß ausgeführt wird, muss wdLineStyleSingle den Wert 1 und wdLineStyleNone den Wert 0 haben.

Ob Sie es glauben oder nicht, der zweite Grund steht im Zusammenhang mit Sprachen, die nicht zur Skriptprogrammierung verwendet werden. In unserem ersten Artikel haben Sie bereits erfahren, das Skripts nicht so leistungsfähig sind wie eine umfangreiche Programmiersprache, z. B. Visual Basic .NET. Ein Unterschied (unter vielen) besteht darin, dass Visual Basic .NET vordefinierte Konstanten einbeziehen kann, wohingegen VBScript so gut wie nichts einbeziehen kann. Das hat mit der Verknüpfung zu Bibliotheken, dem Kompilieren und dergleichen zu tun, alles Dinge, über die Sie sich keine Gedanken machen müssen, da mit Skripts so etwas nicht möglich ist.

Wenn Sie sich diesen Abschnitt der MSDN-Dokumentation (in englischer Sprache) ansehen und oben auf WdLineStyle klicken, sehen Sie eine Liste von Konstanten, mit denen Sie Linienstile in Word definieren können. Sie werden bemerken, dass dort keine Werte angezeigt werden. Bei der Programmierung mit Visual Basic .NET oder auch Visual Basic for Applications (VBA) brauchen wir uns nicht um den Wert zu kümmern. Er ist bereits vordefiniert, wir können die Konstante überall verwenden, wo sie benötigt wird. In VBScript werden die von den Konstanten repräsentierten Werte benötigt. Sie finden die Liste der Werte in demselben Office Space-Artikel, aus dem das Skript stammt. (Woher die Liste stammt, ist ein anderes Thema. Vertrauen Sie im Moment einfach darauf, dass sie stimmt. Außerdem stammt der Artikel von den Scripting Guys, wie könnte die Liste da falsch sein?)

Wir haben also die Konstanten aus dieser Tabelle verwendet, um die Linienstile zu definieren. Hätten wir auch einfach die Werte statt definierter Konstanten verwenden können? Ja. Hätten wir Variablen statt Konstanten verwenden können? Ja. Hätten wir eine Variable oder Konstante anders nennen können, z. B. LSSingle anstatt wdLineStyleSingle? Ja. Warum haben wir uns entschieden, eine Konstante zu erstellen, diese wie in der Dokumentation zu benennen und ihr einen Wert zuzuweisen? Zum einen, damit Ihre Konstanten in allen Skripts konsistent sind. Zum anderen, damit Sie, wenn Sie diese einmal in einem Skript definiert haben, später auf der MSDN-Site danach suchen können und herausfinden können, welche weiteren Konstanten zur Verfügung stehen oder wozu die Konstanten dienen. Sie müssen diesen Standard nicht befolgen, aber es kann das Leben sehr viel leichter machen. Wir tun dies im Script Center, um Ihnen das Leben zu erleichtern. Schließlich sind wir dazu da.

Weitere Informationen

VBScript Constants – VBScript Language Reference (in englischer Sprache)

Microsoft Word VBA Language Reference (in englischer Sprache)

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

Skript-Puzzles

Das reicht für heute. Um jedoch den Start der neuen Serie für Anfänger zu feiern, beginnen wir hier mit einem neuen Feature im Script Center. Wir präsentieren Ihnen ein Skript, das nicht funktioniert, und fordern Sie auf herauszufinden, welches Problem hier vorliegt. Das erste Puzzle bezieht sich auf diesen Artikel. Sie sollten in der Lage sein, es mit dem hier Erlernten zu lösen. (Obwohl es ein wenig verzwickt ist, können Sie es durch sorgfältiges Lesen herausfinden.) Erfahren Sie mehr über die Puzzles und versuchen Sie, das erste zu lösen. Viel Glück!

Dn308958.590B5404BFEA7F06684DB47B00539355(de-de,TechNet.10).pngZum Seitenanfang

| Home | Technische Artikel | Community