Ich erkläre euch in diesem Tutorial wie ihr Funktionen schreiben könnt. Das Ganze werde ich am Beispiel meiner "CutString"-Funktion erklären.
Eine Funktion ist folgendermaßen aufgebaut:
Zuerst wird der Anfang der Funktion definiert. Die Parameter "Private" oder "Public" kennzeichen, ob die Funktion im ganzen Projekt verfügbar sein soll, oder nur im Code des Formulars / Moduls / Klasse, in der sie liegt. Wenn die Funktion im ganzen Projekt verfügbar sein soll, ist das Parameter Public", wenn nicht, ist das Parameter "Private".
Die erste Zeile sieht also folgendermaßen aus:
Code:
Private Function Funktionsname() as Typ
oder
Code:
Public Funktion Funktionsname() as Typ
Wenn man eine Funktion zum Ausführen und nicht zum Bearbeiten eines String (o.Ä.) erstellen möchte,
lässt man einfach den Deklarationstyp weg. Also:
Code:
Private Function Funktionsname()
oder
Code:
Public Funktion Funktionsname()
In der Klammer werden die Variablen deklariert, deren Wert beim Aufrufen der Funktion angegeben werden müssen.
Dazu muss unbedingt der Parameter "ByVal" stehen. Also in unserem Beispiel:
Code:
Public Function CutString(ByVal TheString As String, _
TheStringToCut As String) As String
Jetzt wird beim Aufrufen der Funktion die angegebenen Daten an die Funktion übergeben.
In dieser können diese dann verwendet werden.
In unserem Beispiel splitten wir den in der Variable "TheString" mit dem String,
der in der Variable "TheStringToCut" angegeben wurde.
Also wird der Teil vor der zu entfernenden Zeichenkette und Der dahinter in einem Array gespeichert:
Code:
Dim Var() As String
Var = Split(TheString, TheStringToCut)
Dieses Array fügen wir dann wieder zusammen:
Code:
EndString = Var(0) & Var(1)
Den Rückgabewert, den man beim Aufrufen einer Funktion erhält, bekommt man,
indem man den Funktionsnamen als Variable benutzt, und den Rückgabewert in ihr speichert:
Code:
CutString = EndString
Das Ende einer Funktion ist durch die Zeile
Code:
End Function
gekennzeichnet.
Die Funktion ruft man in anderen Subs nun auf, indem man den Rückgabewert in einer neuen Variable speichert.
In unserem Beispiel:
Code:
Dim NewString As String
NewString = CutString("AlterString", "ZuEntfernenderString")
Anmerkung: Diese Funktion ist nicht besonders gut geworden, da man sie nur benutzen kann, wenn ein String nur an einer Stelle des Strings vohanden ist. Die Funktion dient nur zur Erläuterung, gut benutzen kann man sie nicht unbedingt.
Ruft man eine Funktion auf, die keinen Rückgabewert ausgibt, sondern einen Codeabschnitt,
so benutzt man Call. Zum Beispiel bei einer FTP Upload Funktion:
Public Function FTPUpload(ByVal FTP_Server As String, FTP_Username As String, _
FTP_Passwort As String, LocalFile As String, RemoteFile As String)
On Local Error Resume Next
Dim Inet1 As Inet
Inet1.AccessType = icUseDefault
Inet1.Protocol = icFTP
Inet1.URL = FTP_Server
Inet1.UserName = FTP_Username
Inet1.Password = FTP_Passwort
Inet1.Execute , "Put", LocalFile, RemoteFile
Do
Loop Until Inet1.StillExecuting = True
End Function
Ach so, die fertige CutString Funktion hätte ich fast vergessen. ;D
Code:
Public Function CutString(ByVal TheString As String, _
TheStringToCut As String) As String
Dim Var() As String
Dim EndString As String
Var = Split(TheString, TheStringToCut)
EndString = Var(0) & Var(1)
CutString = EndString
End Function
So, dann sag ich mal End Sub und viel Spaß beim Funktionen schreiben.
Ich hoffe, dass ich alles gut und verständlich erklärt habe.