31.01.2013 Aufrufe

Grundlagen der Programmierung mit VBA Visual Basic for

Grundlagen der Programmierung mit VBA Visual Basic for

Grundlagen der Programmierung mit VBA Visual Basic for

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Die Befehle bedeuten im einzelnen:<br />

ActiveSheet.Shapes("Oval 1").Select<br />

Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10<br />

Selection.ShapeRange.Fill.Visible = msoTrue<br />

Selection.ShapeRange.Fill.Solid<br />

Range("E6").Select<br />

ActiveCell.FormulaR1C1 = "an"<br />

Range("E6").Select<br />

Selection.Font.ColorIndex = 3<br />

10<br />

Kreis "Ellipse 1" auswählen<br />

Füllfarbe rot<br />

Füllung sichtbar<br />

Füllung monochrom<br />

Zelle E6 auswählen<br />

Text "an" eintragen<br />

Zelle E6 auswählen<br />

Textfarbe rot<br />

2.1.3 weitere Prozeduren erstellen<br />

Eine Ampelschaltung besteht aus definierten Lichtkombinationen. Dazu müssen gleichzeitig Lichter<br />

an- und ausgeschaltet werden:<br />

Schaltung rot gelb grün<br />

Halt an aus aus<br />

AchtungFahrt an an aus<br />

Fahrt aus aus an<br />

AchtungHalt aus an aus<br />

AmpelAus aus aus aus<br />

Die einzelnen Ampelschaltungen können aus Kombinationen <strong>der</strong> "Lichter-Makros" zusammengesetzt<br />

werden. Dazu werden im Code-Fenster am Ende weitere Prozeduren angefügt, indem man den Text<br />

<strong>der</strong> Befehle über die Tastatur eingibt. Zum Beispiel für die Prozedur "Halt" (Die entsprechenden Makros<br />

für das gelbe und das grüne Licht wurden selbstverständlich vorher schon erzeugt.):<br />

Sub Halt()<br />

' Ampelschaltung "Halt"<br />

' rot = an, gelb = aus, grün = aus<br />

rot_an<br />

gelb_aus<br />

grün_aus<br />

End Sub<br />

Ein Prozedur beginnt <strong>mit</strong> dem Schlüsselwort "Sub". Danach folgt <strong>der</strong> Name, z.B. "Halt", und dann die<br />

Liste <strong>der</strong> Übergabeparameter, eingeschlossen in Klammern. In unserem Falle werden keine Parameter<br />

übergeben, deshalb sind die Klammern leer. Die Prozedur wird <strong>mit</strong> "End Sub" beendet.<br />

Der VBE-Editor verfügt über eine automatische Syntaxüberprüfung. D.h., schon bei <strong>der</strong> Eingabe wird<br />

<strong>der</strong> Code auf Fehler überprüft, wird die Syntax ergänzt o<strong>der</strong> erscheinen automatisch Hinweisfenster<br />

für die richtige Schreibweise. Beson<strong>der</strong>s hilfreich ist, dass die Schreibweise bekannter Variablen und<br />

Schlüsselwörter nach <strong>der</strong> Eingabe angepasst wird. Wird z.B. "sub" <strong>mit</strong> Kleinbuchstaben eingegeben,<br />

wird automatisch das "s" in ein "S" umgewandelt. Zusätzlich erscheinen Schlüsselwörter blau. Än<strong>der</strong>n<br />

sich bei Eingabe Buchstabenschreibweise bzw. Farbe nicht, hat man sich vertippt.<br />

Kommentar beginnt <strong>mit</strong> einem einfachen Hochkomma ' und erscheint grün. Syntaxfehler werden rot<br />

angezeigt.<br />

Insbeson<strong>der</strong>e bei längeren Programmen ist es wichtig, sich einer strengen Disziplin zu unterwerfen<br />

und den Programmtext auch <strong>for</strong>mal durch Einrückungen, Kommentare und Leerzeilen zu glie<strong>der</strong>n, um<br />

die Lesbarkeit zu verbessern. Das lohnt sich spätestens dann, wenn man logische Fehler suchen<br />

muß. Das wird sehr bald <strong>der</strong> Fall sein ... Aus diesem Grund wird <strong>der</strong> eigentliche Programmtext zwischen<br />

"Sub" und "End Sub" eingerückt.<br />

Aufgabe. Erstellen Sie die Prozeduren "AchtungFahrt", "Fahrt", "AchtungHalt" und "AmpelAus". Erzeugen<br />

Sie Schaltflächen und weisen Sie diesen die neuen Prozeduren zu. Für die Gestaltung bietet<br />

es sich an, Grafiken zu erstellen, die die entsprechende Ampelschaltung darstellen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!