Fournir des valeurs par défaut pour les paramètres facultatifs
Vous pouvez également spécifier des valeurs par défaut pour les paramètres facultatifs. Dans l'exemple suivant, si les paramètres facultatifs ne sont pas transmis à la procédure de fonction, une valeur par défaut est renvoyée.
SubListText(xAsString,FacultativementAs_
Entier=12345)
Liste1.AddItemx
Liste1.AddItemy
EndSub
PRivateSubCommand1_Click()
strName=votrenom 'Le deuxième paramètre n'a pas été fourni.
CallListText(strName) 'Ajoutez "votrenom" et "12345".
EndSub
Utilisation d'un nombre indéterminé de paramètres En général, le nombre de paramètres dans un appel de procédure doit être égal au nombre de paramètres dans la description de la procédure. Vous pouvez utiliser le mot-clé ParamArray pour indiquer que la procédure acceptera n'importe quel nombre de paramètres. Vous pouvez donc écrire la fonction Somme pour calculer la somme comme ceci :
DimxAsInteger
DimyAsInteger
DimintSumAsInteger
Sous-Somme(ParamArrayintNums())
PourEachxInintNums
y = yx
Suivantx
sommeint = y
EndSub
PrivateSubCommand1_Click()
Somme1,3,5,7,8
List1.AddItemintSum
EndSub
Créez des instructions simples avec des paramètres nommés
Pour de nombreuses fonctions, instructions et méthodes intégrées, Visual Basic fournit des méthodes de paramètres nommés pour transmettre rapidement les valeurs des paramètres. Pour les paramètres nommés, n'importe quel nombre de paramètres peut être fourni dans n'importe quel ordre en attribuant des valeurs aux paramètres nommés. Pour ce faire, tapez l'argument nommé, suivi de deux points, d'un signe égal et de la valeur (MyArgument:=SomeValue). Ces affectations peuvent être organisées dans n'importe quel ordre, séparées par des virgules. Notez que l'ordre des paramètres dans l'exemple suivant est opposé à l'ordre des paramètres requis :
FunctionListText(strNameAsString,OptionalstrAddressAsString)
List1.AddItemstrName
List2.AddItemstrAddress
EndSub
PrivateSubCommand1_Click()
ListTextstrAddress :=12345,strName :=VotreNom
EndSub
Ce qui précède est plus utile si la procédure comporte plusieurs paramètres facultatifs qui ne doivent pas toujours être spécifiés.
Confirmer la prise en charge des paramètres nommés
Pour déterminer quelles fonctions, instructions et méthodes prennent en charge les paramètres nommés, utilisez la fonction AutoQuickInfo dans la fenêtre Code, consultez le navigateur d'objets ou consultez la référence du langage. Gardez les points suivants à l’esprit lorsque vous utilisez des paramètres nommés :
Les méthodes d'objets de la bibliothèque d'objets Visual Basic (VB) ne prennent pas en charge les paramètres nommés. Tous les mots-clés de langage de la bibliothèque d'objets Visual Basic pour Applications (VBA) prennent en charge les paramètres nommés.
Dans la syntaxe, les paramètres nommés sont affichés en gras et en italique. Tous les autres paramètres sont uniquement en italique.
Il est important de noter que lorsque vous utilisez des paramètres nommés, vous ne pouvez pas omettre la saisie des paramètres requis. Seuls les paramètres facultatifs peuvent être omis. Pour les bibliothèques d'objets Visual Basic (VB) et Visual Basic pour Applications (VBA), la boîte de dialogue Explorateur d'objets met les paramètres facultatifs entre crochets [].
Voir ByVal, ByRef, Facultatif et ParamArray dans la référence du langage pour plus de détails .
Aperçu de la structure de contrôle
Grâce à la structure de contrôle, le flux d'exécution du programme peut être contrôlé. Si les instructions de flux de contrôle ne sont pas cochées, le programme exécute ces instructions de gauche à droite et de haut en bas. Certains programmes simples peuvent être écrits avec un seul flux unidirectionnel, et certains flux peuvent être contrôlés par la priorité des opérateurs, mais l'efficacité et l'utilité de tout langage de programmation proviennent de sa capacité à modifier l'ordre des instructions à travers des structures et des boucles.
structure de décision
Les procédures Visual Basic peuvent tester des expressions conditionnelles, puis effectuer différentes actions en fonction des résultats des tests.
Les structures de décision prises en charge par Visual Basic sont :
1.Si...Alors
2.Si...Alors...Sinon
3.Sélectionner un cas
Si... Alors
Utilisez la structure If...Then pour exécuter conditionnellement une ou plusieurs instructions. La syntaxe sur une seule ligne et la syntaxe de bloc sur plusieurs lignes peuvent être utilisées :
IfconditionTheninstruction
SiconditionAlors
déclarations
FinSi
La condition est généralement une comparaison, mais il peut s'agir de n'importe quelle expression qui calcule une valeur numérique. Visual Basic interprète cette valeur comme True ou False : une valeur nulle est False et toute valeur différente de zéro est considérée comme True. Si la condition est True, Visual Basic exécute toutes les instructions suivant le mot clé Then. Vous pouvez exécuter conditionnellement une instruction en utilisant une syntaxe sur une ou plusieurs lignes (les deux exemples suivants sont équivalents) :
IfanyDate<NowThenanyDate=Maintenant
IfanyDate<MaintenantPuis
anyDate=Maintenant
FinSi
Remarque : Le format sur une seule ligne de If...Then n'utilise pas l'instruction EndIf. Si vous souhaitez exécuter plusieurs lignes de code lorsque la condition est vraie, vous devez utiliser la syntaxe de bloc multiligne If...Then...EndIf.
IfanyDate<MaintenantPuis
anyDate=Maintenant
Timer1.Enabled=False 'Le contrôle du minuteur est désactivé.
FinSi
Si... Alors... Sinon
Définissez plusieurs blocs d'instructions avec les blocs If...Then...Else et exécutez l'une des instructions :
Sicondition1Alors
[bloc d'instructions-1]
[SinonSicondition2Alors
[bloc d'instructions-2]]...
[Autre
[bloc d'instructions-n]]
FinSi
VisualBasic teste d'abord la condition1. Si la valeur est False, Visual Basic teste la condition2, et ainsi de suite, jusqu'à ce qu'il trouve une condition qui est True. Lorsqu'il trouve une condition vraie, Visual Basic exécute le bloc d'instructions correspondant, puis exécute le code suivant EndIf. En option, vous pouvez inclure un bloc d'instructions Else que Visual Basic exécute si aucune des conditions n'est vraie.
If...Then...ElseIf n'est qu'un cas particulier de If...Then...Else. Notez que vous pouvez utiliser n'importe quel nombre de clauses ElseIf, voire aucune. Il peut y avoir une clause Else, qu'il existe ou non une clause ElseIf.
Par exemple, une application peut effectuer une action en fonction du contrôle sur lequel l'utilisateur clique dans un tableau de contrôles de menu :
PrivateSubmnuCut_Click (IndexAsInteger)
IfIndex=0Then 'Commande "Couper".
CopyActiveControl 'Appelle une procédure commune.
EffacerActiveControl
ElseIfIndex=1Then 'Commande "Copier".
CopierActiveControl
ElseIfIndex=2Then 'Effacer la commande.
EffacerActiveControl
Sinon, commande "Coller".
CollerActiveControl
FinSi
EndSub
Notez que vous pouvez toujours ajouter plus de blocs ElseIf à la structure If...Then. Cependant, cette structure est fastidieuse à écrire lorsque chaque ElseIf compare la même expression à une valeur numérique différente. Dans ce cas, vous pouvez utiliser la structure de décision SelectCase.
Pour des informations détaillées, veuillez vous référer à « Instruction If...Then...Else » dans le « Manuel de référence du langage VisualBasic6.0 ».
Sélectionner un cas
VisualBasic fournit la structure SelectCase pour remplacer If...Then...Else, afin que l'un des multiples blocs d'instructions puisse être exécuté de manière sélective. Les fonctionnalités de l'instruction SelectCase sont similaires à celles de l'instruction If...Then...Else, mais dans le cas de sélections multiples, l'instruction SelectCase rend le code plus lisible.
SelectCase gère une expression de test au-dessus de la structure et ne l'évalue qu'une seule fois. Visual Basic compare ensuite la valeur de l'expression à la valeur de chaque Case de la structure. S'ils sont égaux, le bloc d'instructions associé au Case est exécuté.
Sélectionner une expression de test de cas
[Liste d'expressions de cas1
[bloc d'instructions-1]]
[Liste d'expressions de cas2
[bloc d'instructions-2]]
.
.
.
[CasElse
[bloc d'instructions-n]]
FinSélectionner
Chaque liste d'expressions est une liste d'une ou plusieurs valeurs. S'il y a plusieurs valeurs dans une liste, séparez les valeurs par des virgules. Chaque bloc d'instructions contient zéro ou plusieurs instructions.
Si plusieurs Case correspondent à l’expression de test, seul le bloc d’instructions associé au premier Case correspondant est exécuté. Si aucune valeur dans la liste d'expressions ne correspond à l'expression de test, Visual Basic exécute l'instruction dans la clause CaseElse (ceci est facultatif).
Par exemple, supposons que vous souhaitiez ajouter une commande au menu Edition dans l’exemple If...Then...Else. Vous pouvez ajouter une clause ElseIf pour cela ou utiliser SelectCase pour écrire une fonction :
PrivateSubmnuCut_Click (IndexAsInteger)
SélectionnerCaseIndex
Case0 Commande « Couper ».
CopyActiveControl 'Appelle une procédure commune.
EffacerActiveControl
Case1 'Commande "Copier".
CopierActiveControl
Case2 'Commande "Effacer".
EffacerActiveControl
Case3 'Commande Coller.
CollerActiveControl
CasAutre
frmFind.Show 'Afficher la boîte de dialogue trouvée.
FinSélectionner
EndSub
Notez que la structure SelectCase évalue l'expression au début à chaque fois. La structure If...Then...Else évalue une expression différente pour chaque instruction ElseIf. Vous pouvez remplacer une structure If...Then...Else par une structure SelectCase uniquement si l'instruction If et chaque instruction ElseIf évaluent la même expression.
->