Also auch wenn ich mich zuletzt vor einigen jahren hier gemeldet habe, kann ich da noch ein wenig mitreden....immerhin ist meine Ausbildung schon ein wenig her
Also mal so als Crashkurs in Bezug auf VB (einschliesslich 6.0) und VBA....
Mal in Zusammenfassung die Basics:
1) Datentypen:
Um mit Variablen arbeiten zu können, müssen diese einen Datentyp haben.
Daher werden sie deklariert:Es gibt verschiedene Datentypen, die sich durch den Bereich unterscheiden. String für Zeichenketten (Wörter), Integer für Ganzzahlen(von -32768 bis +32767), Double für Kommazahlen und Long für Ganzzahlen größer als der Integerbereich.
Dim a as integer
Dim b as long
Dim c as double
Dim d as string
Dim d() as integer
2) Es gibt Prozeduren und Functionen. Prozeduren werden "nur" abgearbeitet, Funktionen geben einen Wert zurück.
Prozedur:
Sub test1()
end sub
Funktion: Gibt den Wert zurück, der der Funktion selbst zugewiesen wurde.
Rückgabewert als String, Integer...sogar als Array Möglich.
Function test2() as string
test2="hallo"
end Function
Beispiel Funktionsaufruf:
sub test1()
msgbox test2
end sub
3)Grundpfeiler
Prozedurale Programmierung steht auf 3 Grundpfeilern:
Sequenzen (Zuweisungen)
Abfragen
Schleifen
Typische Sequenz:
i=1
Typische Abfrage:
If a=1 then
...
Elseif a=2 then
...
else
...
end if
oder aber mit Select case:
Select case i
case 1
...
case 2
...
case else
...
end select
Schleifen gibts in 2 Varianten: Kopfgesteuert und Fußgesteuert.
Kopfgesteuert bedeutet: Erst die Abbruchbedingung, dann die Schleife.
Fußgesteuert umgekehrt.
Beispiel Kopfgesteuerte Schleife: Hier wird erst geprüft, ob die Bedingung schon zutrifft.
i=2
Do until i>1
i=i+1
loop
Beispiel Fußgesteuerte Schleife: Hier wird IMMER erst einmal durchlaufen und dann geprüft, ob die Bedingung schon zutrifft.
i=1
Do
i=i+1
loop until i>1
Zuletzt gibt es noch festgesetzte Schleifen:
for i=1 to 10
msgbox i
next i
DAS WARS AUCH SCHON FAST.....
NAtürlich ist Programmierung weitaus komplizierter, aber es sollte ja auch nur ein Einstieg sein.
Nun noch ein kleines Beispiel, wie eine Prozedur mit alle Grundpfeilern aussehen kann.
sub test()
Dim i as integer
dim str as string
i=0
do
if i=1 then
str="eins"
elseif i=2 then
str="zwei"
else
str=i
end if
Msgbox "I hat den Wert " & str
i=i+1
loop until i>10
end sub
Und als Abschluss der Quellcode eines Quicksort für ein zweidimensionales Array:
Sub QuickSort(ByRef sArray As Variant, ByVal MinElem As Long, MaxElem As Long)
Dim Mitte As Long
Dim vDummy As Variant
Dim vDummy2 As Variant
Dim i As Long
Dim j As Long
If MinElem > MaxElem Then
Exit Sub
End If
Mitte = (MinElem + MaxElem) \ 2
i = MinElem
j = MaxElem
Do
Do While (sArray(0, i) < sArray(0, Mitte))
i = i + 1
Loop
Do While (sArray(0, j) > sArray(0, Mitte))
j = j - 1
Loop
If i <= j Then
vDummy = sArray(0, j)
vDummy2 = sArray(1, j)
sArray(0, j) = sArray(0, i)
sArray(1, j) = sArray(1, i)
sArray(0, i) = vDummy
sArray(1, i) = vDummy2
i = i + 1
j = j - 1
End If
Loop Until i > j
QuickSort sArray, MinElem, j
QuickSort sArray, i, MaxElem
End Sub