Variablen Deklaration:
Variablen sind "Platzhalter" für Werte. man kann ihnen (Per eingabe oder automatisch vom Programm) einen Wert zuweisen, einen Wert speichern und mit ihnen Rechnen. Du könntest z.B. die Körpergrösse vom User eingeben lassen, der Wert wird dann in einer Variable gespeichert.
Es gibt 3 Typen von Variablen:
Lokale
Modulweite
Globale
1.Lokale Variablen werden mit
deklariert.
Lokale Variablen gelten nur in der jeweiligen Funktion spprich zwischen "Sub" und "End Sub" bzw "function. Deklariert werden sie am Anfang einer Funktion.
2. Modulweite Variablen werden mit
deklariert.
Modulweite Variablen gelten in einem Modul/Userform etc, bei VBA meistens eine Tabelle, jede Funktion innerhalb eines Moduls kann so eine Variable nutzen. Deklariert werden sie ganz am Anfang eines Moduls
3. Globale Variablen werden mit
deklariert.
Globale Variablen gelten übergreifend in sämtlichen Modulen eines Programms, zum deklarieren muss man sie in ein eigenständiges Modul einfügen.
Konstaten:
Konstanten werden folgendermassen deklariert:
(oder const name as Datentyp = Wert, bin mir grad nicht sicher).
Konstanten können weder vom User noch vom Programm verändert werden.
Der Vorteil ist, das Konstanten im gegensatz zu variablen weniger Speicher verbrauchen und schneller griffbereit sind für das Programm. Ein Idealer Kanidat für Konstanten ist z.B. die Kreiszahl Pi.
Kurz etwas zu den Namen der Variablen:
Du solltest wirklich sinnvolle namen für die Variablen wählen. Wenn du irgendwann einmal Code mit 300 verschiedenen Variablen hast und sie einfach nur durchnummeriert hast, wie willst du dir merken, was in Variable 245 Gespeichert wird ? Wenn du Sinnvolle Namen vergibst, wie z.B. koerpergroesse, ist direkt klar, wozu diese variable gut ist.
Datentypen:
Boolean = Ja/nein (1/0)
Integer = Ganzzahlen (1;2;3;-1,-2;-3....)
Long = Ebenfalls ganzzahlen, kann aber höhere Werte aufnehmen
Single = Fliesskommazahlen (1,56546)
Double = Ebenfalls Flieskommazahlen, kann aber höhere Werte aufnehmen
String = Zeichenketten (Haus, 02364, rh7843rh345ß7....)
Date = Datum
Variant = Ein VB eigener Datentyp, das Programm versucht selbst den Wert zu Interpretieren, das kann gut gehen, aber muss es nicht, ich gehe später noch drauf ein.
(Hab bestimmt was vergessen, das sind aber die wichtigsten)
Eine Körpergrösse in cm würde so, z.B. als Integer gespeicher (185), eine Körpergrösse in Metern als Single (1,85) und wenn du noch die Masseinheit mit speichern willst, musst du String benutzen (185cm ; 1,85 m).
If Anweisung / Select Case anweisung
Eine sehr wichtige Funktion bei allen Programmiersprachen ist - neben den Schleifen - die If-Anweisung. Eine If-Anweisung lässt ein Programm einen Wert überprüfen und wird je nach Wert reagieren. Beispiel:
Du könntest vom User die Körpergrösse eingeben lassen und je nach grösse eine Nachricht ausgeben
Code:
If koerpergroesse > 190 then
MsgBox ("Du bist sehr gross")
ElseIf koerpergroesse > 170 then
MsgBox ("Du bist normal gross")
Elseif koerpergroesse < 169 then
MsgBox ("Du bist klein")
Endif
Hierbei überprüft er die Variable "Koerpergroesse" auf einen bestimmten Wert, er üperprüft erst, ob der Wert über 190 liegt, wenn ja springt er zu der Codezeile "MsgBox ("Du bist sehr gross")" und beendet danach die If-Anweisung. Wenn der Wert nicht über 190 liegt, überprüft er ob er über 170 liegt, springt in dem Falle zu der Textzeile "MsgBox ("Du bist normal gross")" und beendet danach die If-Anweisung.
Die Select Case anweisung hat im Grunde eine ähnliche funktion, wird aber vorallem bei vielen verschiedenen Werten, die überprüft werden müssen angewendet.
Code:
Select Case koerpergroesse
Case 190
MsgBox ("190")
Case 189
MsgBox("189")
Case 188
MsgBox("188")
End Case
Ich denke das muss ich nicht näher erläutern, es ist im Grunde das selbe wie die If-Anweisung.
Die MsgBox ist im übrigen einfach ein Fenster das Aufpoppt und den ihr zugeteilten Wert ausgib. Wenn dieser Wert in "" steht (z.B. "Bob"), dann gibt er genau das aus, was zwischen den "" steht. Wenn du die "" weglassen würdest und einfach schreiben würdest "MsgBox(Bob), dann würde er die Variable "Bob" suchen und den Wert in Bob ausgeben.
Wenn du das Mischen willst, sprich eine Vordefinierte Zeichenkette ausgeben und dazu einen Wert einer Variable, dann funktioniert das so:
Code:
MsgBoX("Ihre Körpergrösse beträgt " & koerpergroesse)
Er gibt nun zuerst den String "Ihre Körpergrösse beträgt " (Ohne "") aus und hängt dann den Wert der Variable koerpergroesse hinten dran.
Option Explicit
Du solltest über Jedes Modul ganz oben die zeile "Option Explicit" schreiben, sie bewirkt folgendes:
Normalerweise ist eine Variablendeklaration von Excel aus nicht nötig du könntest einfach irgendwo hinschreiben i = 5, dann würde Excel die Variable "i" anlegen, ihr den Datentyp Variant den Wert 5 zuweisen. Das solltest du aber nicht tun, da Excel dann selbst versucht, den inhalt zu interpretieren und das kann gewaltig in die Hose gehen. Deshalb solltest du Variablen immer mit dem richtigen Datentyp deklarieren um so von vorneherein Fehler auszuschliessen.
Mit der Zeile "Option Explicit" am Anfang deines Codes wird eine Variablendekleration erzwungen, d.h. er würde dir, wenn du irgendwo die variable "i" benutzt, ohne sie vorher deklariert zu haben eine Fehlermeldung ausgeben. Das ganze ist auch sehr nützlich, um Rechtschreibfehler in Variablen zu finden. Angenommen du hast folgenden Code geschrieben, mit einem Rechtschreibfehler bei den Variablen:
Code:
[color=Magenta]zahl1[/color] = 5
[color=DarkOrange]zahl2[/color] = 3
[color=SeaGreen]ergebnis[/color] = [color=DarkRed]zal1[/color] + [color=DarkOrange]zahl2[/color]
Excel würde in diesem Fall 4 Variablen anlegen
Zahl1,
Zahl2,
Zal1 und
ergebnis. Jetzt würdest du ein falsches Ergebnis erhalten, weil excel
zal1 und
zahl2 verrechnen würde,
zal1 wurde kein Wert zugewiesen, sprich ist 0 und du würdest als ergebnis 3 erhalten.
Besser, du machst es so:
Code:
Option Explicit
Dim [color=Magenta]zahl1[/color] as integer
Dim [color=DarkOrange]zahl2[/color] as integer
Dim [color=SeaGreen]ergebnis[/color] as integer
[color=Magenta]zahl1[/color] = 5
[color=DarkOrange]zahl2[/color] = 3
[color=SeaGreen]ergebnis[/color] = [color=DarkRed]zal1[/color] + [color=DarkOrange]zahl2[/color]
Excel würde jetzt eine Fehlermeldung ausgeben, das
zal1 nicht deklariert wurde und du findest ganz leicht den Fehler. Ich gebe zu, das klingt bei diesem Beispiel sehr banal, aber wenn du erstmal komplixierten Code hast, der nichtmehr so leicht überschaubar ist, dann überliesst man solche Fehler sehr sehr schnell.
Soviel erstmal von mir, wenn etwas unklar ist oder du mehr wissen willst, einfach schreien
