Geben Sie Standardwerte für optionale Parameter an
Sie können auch Standardwerte für optionale Parameter angeben. Wenn im folgenden Beispiel keine optionalen Parameter an die Funktionsprozedur übergeben werden, wird ein Standardwert zurückgegeben.
SubListText(xAsString,OptionalyAs_
Ganzzahl=12345)
List1.AddItemx
List1.AddItemy
EndSub
PRivateSubCommand1_Click()
strName=IhrName 'Der zweite Parameter wurde nicht angegeben.
CallListText(strName) 'Fügen Sie „IhrName“ und „12345“ hinzu.
EndSub
Verwendung einer unbestimmten Anzahl von Parametern Im Allgemeinen sollte die Anzahl der Parameter in einem Prozeduraufruf der Anzahl der Parameter in der Prozedurbeschreibung entsprechen. Mit dem Schlüsselwort ParamArray können Sie angeben, dass die Prozedur eine beliebige Anzahl von Parametern akzeptiert. Sie können also die Summenfunktion schreiben, um die Summe wie folgt zu berechnen:
DimxAsInteger
DimyAsInteger
DimintSumAsInteger
SubSum(ParamArrayintNums())
ForEachxInintNums
y=yx
Nextx
intSum=y
EndSub
PrivateSubCommand1_Click()
Summe1,3,5,7,8
List1.AddItemintSum
EndSub
Erstellen Sie einfache Anweisungen mit benannten Parametern
Für viele integrierte Funktionen, Anweisungen und Methoden stellt Visual Basic benannte Parametermethoden zur schnellen Übergabe von Parameterwerten bereit. Für benannte Parameter können beliebig viele Parameter in beliebiger Reihenfolge bereitgestellt werden, indem den benannten Parametern Werte zugewiesen werden. Geben Sie dazu das benannte Argument ein, gefolgt von einem Doppelpunkt, einem Gleichheitszeichen und dem Wert (MyArgument:=SomeValue). Diese Zuweisungen können in beliebiger Reihenfolge angeordnet werden, getrennt durch Kommas. Beachten Sie, dass die Reihenfolge der Parameter im folgenden Beispiel entgegengesetzt zur Reihenfolge der erforderlichen Parameter ist:
FunctionListText(strNameAsString,OptionalstrAddressAsString)
List1.AddItemstrName
List2.AddItemstrAddress
EndSub
PrivateSubCommand1_Click()
ListTextstrAddress:=12345,strName:=IhrName
EndSub
Das Obige ist nützlicher, wenn die Prozedur mehrere optionale Parameter hat, die nicht immer angegeben werden müssen.
Bestätigen Sie die Unterstützung für benannte Parameter
Um festzustellen, welche Funktionen, Anweisungen und Methoden benannte Parameter unterstützen, verwenden Sie die AutoQuickInfo-Funktion im Codefenster, überprüfen Sie den Objektbrowser oder konsultieren Sie die Sprachreferenz. Beachten Sie bei der Verwendung benannter Parameter die folgenden Punkte:
Methoden von Objekten in der Objektbibliothek von Visual Basic (VB) unterstützen keine benannten Parameter. Alle Sprachschlüsselwörter in der Visual Basic for Applications (VBA)-Objektbibliothek unterstützen benannte Parameter.
In der Syntax werden benannte Parameter fett und kursiv dargestellt. Alle anderen Parameter sind nur kursiv dargestellt.
Es ist wichtig zu beachten, dass Sie bei der Verwendung benannter Parameter nicht auf die Eingabe erforderlicher Parameter verzichten können. Nur optionale Parameter können weggelassen werden. Für Visual Basic (VB)- und Visual Basic for Applications (VBA)-Objektbibliotheken schließt das Dialogfeld „Objektbrowser“ optionale Parameter in eckige Klammern [] ein.
Weitere Informationen finden Sie in der Sprachreferenz unter ByVal, ByRef, Optional und ParamArray.
Übersicht über die Kontrollstruktur
Mit der Kontrollstruktur kann der Ablauf der Programmausführung gesteuert werden. Wenn Kontrollflussanweisungen nicht überprüft werden, durchläuft das Programm diese Anweisungen von links nach rechts und von oben nach unten. Einige einfache Programme können nur mit einem einseitigen Ablauf geschrieben werden, und einige Abläufe können durch Operatorpriorität gesteuert werden, aber die Effektivität und Nützlichkeit jeder Programmiersprache beruht auf ihrer Fähigkeit, die Reihenfolge von Anweisungen durch Strukturen und Schleifen zu ändern.
Entscheidungsstruktur
Visual Basic-Prozeduren können bedingte Ausdrücke testen und dann basierend auf den Testergebnissen verschiedene Aktionen ausführen.
Die von Visual Basic unterstützten Entscheidungsstrukturen sind:
1.Wenn...Dann
2.Wenn...Dann...Sonst
3. Wählen Sie Fall aus
Wenn...Dann
Verwenden Sie die If...Then-Struktur, um eine oder mehrere Anweisungen bedingt auszuführen. Es kann sowohl einzeilige Syntax als auch mehrzeilige Blocksyntax verwendet werden:
IfconditionThen-Anweisung
WennBedingungDann
Aussagen
EndIf
Bedingung ist normalerweise ein Vergleich, kann aber auch ein beliebiger Ausdruck sein, der einen numerischen Wert berechnet. Visual Basic interpretiert diesen Wert als „Wahr“ oder „Falsch“: Ein Nullwert ist „Falsch“, und jeder Wert ungleich Null wird als „Wahr“ betrachtet. Wenn die Bedingung „True“ ist, führt Visual Basic alle Anweisungen aus, die auf das Schlüsselwort „Then“ folgen. Sie können eine Anweisung mit einzeiliger oder mehrzeiliger Syntax bedingt ausführen (die folgenden beiden Beispiele sind äquivalent):
IfanyDate<NowThenanyDate=Jetzt
IfanyDate<NowThen
anyDate=Jetzt
EndIf
Hinweis: Das einzeilige Format von If...Then verwendet nicht die EndIf-Anweisung. Wenn Sie mehrere Codezeilen ausführen möchten, wenn die Bedingung wahr ist, müssen Sie die Syntax des mehrzeiligen Blocks If...Then...EndIf verwenden.
IfanyDate<NowThen
anyDate=Jetzt
Timer1.Enabled=False 'Timer-Steuerung ist deaktiviert.
EndIf
Wenn...Dann...Sonst
Definieren Sie mehrere Anweisungsblöcke mit If...Then...Else-Blöcken und führen Sie eine der Anweisungen aus:
Ifcondition1Then
[Anweisungsblock-1]
[ElseIfcondition2Then
[Anweisungsblock-2]]...
[Anders
[Anweisungsblock-n]]
EndIf
VisualBasic testet zunächst Bedingung1. Wenn es „Falsch“ ist, testet Visual Basic Bedingung2 usw., bis eine Bedingung gefunden wird, die „True“ ist. Wenn eine Bedingung gefunden wird, die wahr ist, führt Visual Basic den entsprechenden Anweisungsblock aus und führt dann den Code nach EndIf aus. Als Option können Sie einen Else-Anweisungsblock einschließen, den Visual Basic ausführt, wenn keine der Bedingungen wahr ist.
If...Then...ElseIf ist nur ein Sonderfall von If...Then...Else. Beachten Sie, dass Sie eine beliebige Anzahl oder gar keine ElseIf-Klauseln verwenden können. Es kann eine Else-Klausel geben, unabhängig davon, ob eine ElseIf-Klausel vorhanden ist.
Beispielsweise kann eine Anwendung eine Aktion ausführen, die darauf basiert, auf welches Steuerelement in einer Reihe von Menüsteuerelementen geklickt wird:
PrivateSubmnuCut_Click(IndexAsInteger)
IfIndex=0Then 'Befehl „Ausschneiden“.
CopyActiveControl 'Eine allgemeine Prozedur aufrufen.
ClearActiveControl
ElseIfIndex=1Then 'Befehl „Kopieren“.
CopyActiveControl
ElseIfIndex=2Then 'Befehl löschen.
ClearActiveControl
Sonst 'Befehl einfügen.
PasteActiveControl
EndIf
EndSub
Beachten Sie , dass Sie jederzeit weitere ElseIf-Blöcke zur If...Then-Struktur hinzufügen können. Das Schreiben dieser Struktur ist jedoch mühsam, wenn jedes ElseIf denselben Ausdruck mit einem anderen numerischen Wert vergleicht. In diesem Fall können Sie die SelectCase-Entscheidungsstruktur verwenden.
Ausführliche Informationen finden Sie unter „If...Then...Else-Anweisung“ im „VisualBasic6.0 Language Reference Manual“.
Wählen Sie Fall aus
VisualBasic stellt die SelectCase-Struktur bereit, um If...Then...Else zu ersetzen, sodass einer von mehreren Anweisungsblöcken selektiv ausgeführt werden kann. Die Funktionen der SelectCase-Anweisung ähneln denen der If...Then...Else-Anweisung, bei Mehrfachauswahlen sorgt die SelectCase-Anweisung jedoch dafür, dass der Code besser lesbar ist.
SelectCase verarbeitet einen Testausdruck über der Struktur und wertet ihn nur einmal aus. Visual Basic vergleicht dann den Wert des Ausdrucks mit dem Wert jedes Cases in der Struktur. Wenn sie gleich sind, wird der dem Case zugeordnete Anweisungsblock ausgeführt.
Wählen Sie Casetestexpression aus
[Caseexpressionlist1
[Anweisungsblock-1]]
[Caseexpressionlist2
[Anweisungsblock-2]]
.
.
.
[CaseElse
[Anweisungsblock-n]]
EndSelect
Jede Ausdrucksliste ist eine Liste mit einem oder mehreren Werten. Wenn eine Liste mehrere Werte enthält, trennen Sie die Werte durch Kommas. Jeder Anweisungsblock enthält null oder mehr Anweisungen.
Wenn mehr als ein Case mit dem Testausdruck übereinstimmt, wird nur der Anweisungsblock ausgeführt, der dem ersten passenden Case zugeordnet ist. Wenn kein Wert in der Ausdrucksliste mit dem Testausdruck übereinstimmt, führt Visual Basic die Anweisung in der CaseElse-Klausel aus (dies ist optional).
Angenommen, Sie möchten im Beispiel „If...Then...Else“ einen Befehl zum Menü „Bearbeiten“ hinzufügen. Sie können hierfür eine ElseIf-Klausel hinzufügen oder SelectCase verwenden, um eine Funktion zu schreiben:
PrivateSubmnuCut_Click(IndexAsInteger)
SelectCaseIndex
Case0 'Ausschneiden'-Befehl.
CopyActiveControl 'Eine allgemeine Prozedur aufrufen.
ClearActiveControl
Case1 'Befehl „Kopieren“.
CopyActiveControl
Case2 'Befehl „Löschen“.
ClearActiveControl
Case3 'Befehl einfügen.
PasteActiveControl
CaseElse
frmFind.Show 'Zeigt das Gefunden-Dialogfeld an.
EndSelect
EndSub
Beachten Sie, dass die SelectCase-Struktur den Ausdruck jedes Mal am Anfang auswertet. Die If...Then...Else-Struktur wertet für jede ElseIf-Anweisung einen anderen Ausdruck aus. Sie können eine If...Then...Else-Struktur nur dann durch eine SelectCase-Struktur ersetzen, wenn die If-Anweisung und jede ElseIf-Anweisung denselben Ausdruck auswerten.
->