Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Théorie – notes de cours sur Visual basic
Par Patrick Lapointe
Le 8 mars 2016
Programmation d’un utilitaire Page 2 sur 32
Table des matières
1 Variables et événements .............................................................................. 4
I. Déclarer une variable .............................................................................. 4
II. Où déclarer la variable ......................................................................... 4
III. Pour utiliser une variable déclarée dans un autre formulaire ................... 5
IV. Nommer les variables ........................................................................... 5
V. Nommer les objets ............................................................................... 6
VI. Création de codes événement ............................................................... 7
VII. Créer un nouveau formulaire ................................................................ 8
VIII. Propriétés close, show et hide ............................................................ 8
IX. Pour changer l’événement .................................................................... 9
2 Les instructions ......................................................................................... 10
I. Les commentaires ................................................................................. 10
II. Les conditions et les opérateurs booléens ............................................ 11
III. La boucle For…Next ........................................................................... 12
IV. La boucle Do…While et la boucle Do until ............................................ 13
A. La boucle Do until ........................................................................ 14
B. La boucle Do while ...................................................................... 14
V. Commande Val() avec un textbox ....................................................... 15
VI. Afficher des étoiles pour un mot de passe ........................................... 16
Programmation d’un utilitaire Page 3 sur 32
VII. L’instruction MsgBox() ........................................................................ 16
VIII. L’instruction InputBox() ................................................................... 19
X. L’instruction Format() ......................................................................... 20
XI. Sous-routine sub ................................................................................ 21
A. Sous-routine publique ................................................................. 22
B. Sous-routine privée ..................................................................... 23
XI. La fonction ........................................................................................ 24
XI. Instruction à ne pas utiliser ................................................................ 25
3 Quelques objets ......................................................................................... 26
I. L’objet TextBox .................................................................................... 26
II. L’objet Label ...................................................................................... 27
III. L’objet Button .................................................................................... 27
Annexe A – Nommer les variables .................................................................. 29
Annexe B – Nommer les objets ...................................................................... 30
Annexe C - Valeurs retournées par MsgBox .................................................... 32
Programmation d’un utilitaire Page 4 sur 32
Théorie – notes de cours sur Visual basic
1 Variables et événements
I. Déclarer une variable
Regardons comment déclarer une variable. Déclarons les variables Nom et Âge :
II. Où déclarer la variable
La commande Dim (ou private) signifie que la variable peut être utilisée
seulement pour la sous-routine (Private Sub) en cours et aucune autre fenêtre
(formulaire) ou sous-routine du projet ne pourra s’en servir.
Par contre si nous avions indiqué Public, nous aurions pu utiliser cette variable à
travers d’autres fenêtres (formulaires) de notre application. Notez également
l’instruction Const qui transforme une variable en constante, c’est-à-dire une
Programmation d’un utilitaire Page 5 sur 32
valeur qui ne peut être changée dans le programme (par ex. dans le cas d’un
pourcentage de taxe).
III. Pour utiliser une variable déclarée dans un autre formulaire
Il faut déclarer la variable publique (par ex intCpt)
dans le premier formulaire (par ex. Principal) :
Dans le deuxième formulaire, il faut indiquer le nom du formulaire dans lequel
la variable a été déclarée :
IV. Nommer les variables
La variable Nom s’écrit strNom seulement pour nous faciliter la tâche. Elle dit
que la variable strNom est de type String. Cela peut nous aider et éviter de
revoir la déclaration de cette variable à chaque utilisation pour trouver son type.
Voir le tableau des exemples en annexe 1.
Programmation d’un utilitaire Page 6 sur 32
V. Nommer les objets
Tous les objets que vous déposez sur vos formulaires, il faut les nommer en
suivant le tableau des exemples en annexe 1.
1
Programmation d’un utilitaire Page 7 sur 32
VI. Création de codes événement
Un code événement est une action que peut faire un objet soit en cliquant dessus,
soit en passant la souris dessus, etc.
Pour créer une action, double cliquez sur l’objet en question. Créons l’interface
suivante :
Double-cliquez sur le bouton Entrer. Une nouvelle sous-routine est créée et
l’événement est ajouté pour indiquer que cette routine s’exécute lorsque l’on
clique sur le bouton.
Programmation d’un utilitaire Page 8 sur 32
VII. Créer un nouveau formulaire
Dans l’explorateur de solution, clique-droit sur le projet et ajouter un formulaire
Windows.
VIII. Propriétés close, show et hide
En ajoutant dans ces instructions dans un formulaire, nous pouvons afficher,
cacher et fermer un formulaire.
Programmation d’un utilitaire Page 9 sur 32
Observez le code qui est encadré en rouge.
Attention
Quand vous fermez une fenêtre (action .close), le programme se termine lorsque
vous fermez la première fenêtre de votre projet.
IX. Pour changer l’événement
Si nous désirons changer l’événement associé avec un bouton, changer
l’événement et les paramètres de sous-routine changeront.
Pour un bouton, on clique dessus normalement et non double-clique. Soyez
crédible dans les actions de vos boutons face aux utilisateurs.
Programmation d’un utilitaire Page 10 sur 32
2 Les instructions
I. Les commentaires
Tout comme dans les précédents exercices (Arduino, etc.), il est important
d’ajouter des commentaires. Vous devrez insérer désormais à tous vos projets un
entête de programme ainsi que des commentaires utiles à l’intérieur de votre
code.
Les commentaires débutent toujours par une apostrophe. Le code deviendra
alors VERT ce qui indiquera que cette ligne est un commentaire et qu’elle ne sera
pas exécuté dans le code.
Les commentaires peuvent au début du formulaire ou à la fin d’une ligne.
Programmation d’un utilitaire Page 11 sur 32
II. Les conditions et les opérateurs booléens
Regardons maintenant l’instruction IF. Cette commande est utilisée dans le but de
vérifier une condition.
Supposons que nous voulons comparer deux variables :
If variable1 >variable 2 then
variable1=23
Else variable1=24 End if
Cette déclaration attribue la valeur 23 à variable1 si elle est plus grande que la
valeur de la variable2, sinon on lui donne la valeur 24.
N’oubliez pas de mettre le mot END IF à la fin de chaque déclaration de IF et de
respecter l’indentation, c’est-à-dire le décalage des lignes.
Programmation d’un utilitaire Page 12 sur 32
Vous pouvez, si vous le désirez, inclure plusieurs If dans un If :
Dim strMessage as string
If 24 < 23 then
If 24 > 24 Then
strMessage =”oui “
Else
strMessage =”non”
End if
Else
strMessage =”annuler”
End if
Combien vaut x ? ____________
III. La boucle For…Next
Cette commande est utilisée pour répéter un nombre de fois définie ou non une
instruction ou plusieurs instructions.
Dim iCompte as integer
Dim x as integer
X=0
For iCompte = 1 to 199
X=x+1
Next
Combien vaut x ? ___________
Programmation d’un utilitaire Page 13 sur 32
Dans les boucles, il existe des indices et des compteurs.
Indice : Variable qui permet de savoir à quel tour de boucle est rendue
l’instruction For.
Compteurs : Variable qui permet de faire des calculs et qui augmente
ou diminue dont le résultat peut servir.
Voici un exemple de boucle :
For intX= 1 to 10
intY=intY+1
Next
If intY = 23 then …
La variable intX est utilisée comme un indice (je fais 10 tours de boucle) et la
variable intY comme un compteur.
IV. La boucle Do…While et la boucle Do until
C’est deux instructions sont également des boucles mais, cette fois-ci, ce n’est pas
un indice qui permet d’arrêter la boucle mais une condition.
Programmation d’un utilitaire Page 14 sur 32
A. La boucle Do until
Voici un exemple pour illustrer son fonctionnement:
Dans cet exemple, la condition est évaluée au début de la boucle.
Si le résultat est faux, la boucle n’est pas exécutée.
Si le résultat est vrai, la boucle s’exécute jusqu’à tant que la condition soit
fausse.
Dans ce cas-ci, la boucle s’exécute 2 fois : elle s’arrête quand intX égale 11.
Do until signifie Jusqu’à…
B. La boucle Do while
Voici un exemple pour illustrer son fonctionnement:
Dans ce cas-ci, la boucle ne s’exécute pas car la condition n’est pas remplie au
départ puisque intX est plus petit que 10.
Do while signifie Tant que…
Programmation d’un utilitaire Page 15 sur 32
Attention aux boucles infinies. Assurez-vous que la condition d’arrêt
peut être atteinte.
V. Fonction Val() avec un textbox
Pourquoi utiliser cette instruction ?
Pourquoi dois-je écrire val (nombre1.text) + val (nombre2.text) et non pas
nombre1.text + nombre2.text ?
Parce que l’objet textbox (case blanche) correspond à du texte : on
ne peut pas additionner du texte, on additionne des nombres.
C’est pour cette raison que l’on prend les valeurs (Val) des textbox. Par contre,
si vous aviez déclaré deux variables de type Integer, vous n’auriez pas eu besoin
de faire cette démarche avec la fonction Val().
Programmation d’un utilitaire Page 16 sur 32
VI. Afficher des étoiles pour un mot de passe
Il serait intéressant de mettre un contrôle pour les mots de passe, c’est-à-dire que
le mot de passe ne s’affiche pas lorsque l’utilisateur le tape.
Pour une zone de texte (textbox), il faut changer dans les propriétés : c’est le
caractère de la propriété PasswordChar qui masquera les caractères saisis par
l’utilisateur.
VII. L’instruction MsgBox()
Cette instruction vous permet de faire afficher un message à l’écran.
La structure de cette instruction est la suivante
Msgbox ( "Le message", Les actions (bouton + image), "Le titre" )
Programmation d’un utilitaire Page 17 sur 32
Le message est la chaîne de caractères que vous voulez voir apparaître à
l’écran. Cette chaîne peut prendre cette allure :
a. "Une chaîne de caractères encadrées par des guillemets" OU
b. "Une chaîne de caractères encadrées par des guillemets" &
strUneVariableDeTypeChaine OU
c. strUneVariableDeTypeChaine
Porter attention au caractère & qui permet d’attacher des chaînes de
caractères ensemble.
L’opérateur VbCrLf permet d’effectuer un saut de ligne.
L’action est le type symbole visible sur la fenêtre. En voici quelques
exemples :
MsgBoxStyle.OkOnly
MsgBoxStyle.YesNoCancel
MsgBoxStyle.Critical
Programmation d’un utilitaire Page 18 sur 32
MsgBoxStyle.Exclamation
Pour combiner des actions ajouter le symbole + entre :
Titre de la fenêtre est la phrase qui va apparaître en haut de la fenêtre
sur la barre de titre.
Par exemple, dans un Msgbox, si vous utilisez les boutons Oui («Yes») et Non
(«No»), vous pouvez gérer l’action de ces boutons. Voici un exemple qui sauve le
résultat dans une variable :
La variable intMessage contient alors le résultat. Comme c’est le
MsgBoxStyle.YesNo qui est indiqué, si on clique sur le bouton Oui, la variable
intMessage prend la valeur 6. Si on clique sur le bouton Non, la variable
intMessage prend la valeur 7.
Pour les valeurs retournées par MsgBox, voir le document en annexe.
Programmation d’un utilitaire Page 19 sur 32
VIII. L’instruction InputBox()
Cette commande vous permet de lire de l’information.
La structure de cette instruction est la suivante
Variable = inputBox ("Le message", "Le titre" )
Variable : c’est la variable qui recevra ce qui sera saisi au clavier par
l’utilisateur.
Le message est la chaîne de caractères que vous voulez voir apparaître à
l’écran. Cette chaîne peut prendre cette allure :
d. "Une chaîne de caractères encadrées par des guillemets" OU
e. "Une chaîne de caractères encadrées par des guillemets" &
strUneVariableDeTypeChaine OU
f. strUneVariableDeTypeChaine
Porter attention au caractère & qui permet d’attacher des chaînes
ensemble.
Titre de la fenêtre est la phrase qui va apparaître en haut de la fenêtre
sur la barre de titre.
Par exemple :
Programmation d’un utilitaire Page 20 sur 32
X. L’instruction Format()
Cette instruction sert à formater une variable numérique à l’aide d’un masque de
saisi.
Noter que la virgule dans le système métrique sépare le nombre entier
(1234) et sa fraction (56). C’est une espace qui sépare les groupes de 3
chiffres.
Voici un exemple :
Je veux afficher 12345,67 dollars dans un
textbox :
Regardons le masque utilisé.
Le caractère # signifie que l’espace est réservée pour un nombre et que rien n’est
affiché si le nombre n’est pas significatif (c’est-à-dire qu’il ne change pas la valeur
Programmation d’un utilitaire Page 21 sur 32
du nombre), par exemple : on affiche 123,45 et non pas 0123,45. Le zéro en
position de millier n’est pas affiché.
Le caractère 0 signifie que l’espace est réservé pour un nombre, mais qu’un zéro
va apparaître s’il n’y a pas assez de chiffres, par exemple : si le masque est
"##0.00" et que le nombre à afficher est 000.02, le zéro avant la virgule
s’affiche et les zéros en position de dixième et de centième s’affichent.
Résultat : 0,02
XI. Sous-routine sub
Une sous-routine est une suite d’instructions qui peut être partagée avec d’autres
parties du programme. Par exemple, si vous avez deux boutons « imprimer »
dans votre logiciel, vous n’inscrirai pas deux fois le même code. Vous utiliserez
alors une sous-routine. Une sous-routine ne retourne pas de valeur lorsqu’elle est
terminée.
Vous devez commencer la déclaration de la sous-routine de la façon suivante :
Public sub NOM()
…….
End sub
La sous-routine peut être soit privée (on peut l’utiliser uniquement dans le
même formulaire que la sous-routine), soit public (on peut l’utiliser dans tous les
formulaires).
Programmation d’un utilitaire Page 22 sur 32
A. Sous-routine publique
Si elle est publique, elle pourra alors être utilisée à travers tout le logiciel, peu
importe le formulaire actif au moment de l’appel de la sous-routine.
Par exemple, si vous avez déclarez une sous-routine dans le code du formulaire
frmUNO et que vous vouliez utiliser cette sous-routine dans le code du formulaire
frmDeux, vous devrez alors taper la commande suivante pour appeler cette
sous-routine :
frmUno.NOM DE LA SOUS ROUTINE
Programmation d’un utilitaire Page 23 sur 32
B. Sous-routine privée
Si vous voulez appeler une sous-routine privée, c’est-à-dire à l’intérieur d’un
même formulaire, vous utiliserez le code suivant :
N’oubliez pas que la sous-routine ne retourne pas de valeur lorsqu’elle est
terminée.
Programmation d’un utilitaire Page 24 sur 32
XI. La fonction
La fonction ressemble à la sous-routine sauf qu’elle retourne une valeur
lorsqu’elle est terminée. Les types de valeurs Public et Private sont aussi
utilisées. Voici un exemple :
Exécution de ce code nous donne :
Type de la valeur
retournée par la fonction Nom de la fonction
Valeurs envoyées à
la fonction
Programmation d’un utilitaire Page 25 sur 32
Si vous désirez que votre fonction soit accessible par un autre formulaire, ajouter
Public devant la fonction.
XI. Instruction à ne pas utiliser
Les instructions telles que Exit sub, Exit for, Exit do et même GoTo sont à
proscrire, c’est-à-dire qu’il ne faut pas les utiliser car ce n’est une pas une
façon de programmer de manière structurer puisque que celles-ci permettent de
quitter une sous-routine ou une boucle de n’importe laquelle des manières.
Programmation d’un utilitaire Page 26 sur 32
3 Quelques objets
Voici quelques objets pour démarrer en Visual basic. D’autres seront présentés
lors des prochains exercices.
I. L’objet TextBox
L’objet TextBox est une boîte dans laquelle on peut y entrer de l’information et la
traiter.
Supposons que nous avons besoin d’un TextBox pour entrer une valeur. Sur le
formulaire, le TextBox prend cette allure :
Si on regarde le panneau des propriétés de l’objet, en suivant la façon de nommer
les objets (Annexe B – Nommer les objets), notre objet est nommé txtVal1 :
Quelques petits trucs pour gérer les TextBox.
Si on fait txt1.Val1 -> on lit ce qu’il y a dans le TextBox.
Si on fait txt1.Val1 = "", on vide ce qui est dans la case.
Si on fait txt1.Val1.enabled = false, alors la boîte est
inaccessible (grisé).
Programmation d’un utilitaire Page 27 sur 32
II. L’objet Label
L’objet Label est une étiquette pour ajouter de l’information en lien avec les
autres objets sur le formulaire.
En voici un exemple :
Dans le panneau des propriétés, n’oubliez pas de
nommer votre objet :
III. L’objet Button
L’objet Button permet d’associer une action lorsque l’état du bouton change :
de non-activé à activer.
Sur un formulaire, l’objet prend cette allure :
Dans le panneau des propriétés, n’oubliez pas
de nommer votre objet :
Vous pouvez changer le texte dans le
bouton : propriété Text dans la section
Font. La dimension de la police et du choix
de la police se change aussi dans cette
section, dans notre exemple, Tahoma pour
une taille de police de 14,25pt.
Programmation d’un utilitaire Page 28 sur 32
Voici l’exemple du code associé au bouton :
Quand l’utilisateur clique sur le bouton btnCalcul du formulaire, les actions
(créer des variables, assigner des valeurs, afficher des messages) s’exécutent.
Programmation d’un utilitaire Page 29 sur 32
Annexe A – Nommer les variables
Type de variable Préfixe Exemple
Boolean bln blnFull
Byte byt bytDaysInMonth
Currency cur curPoundsSterling
Date (Time) dtm dtmStart
Double dbl dblAstronomicalDistances
Integer int intNumberOfEmployees
Long lng lngProfits
Single sgl sgl
String str strSurname
User-Defined Type udt udtStaffDetails
Variant vnt vntChartData
Source : http://www.webprofesseur.com/vbnet/15440n3.htm
Programmation d’un utilitaire Page 30 sur 32
Annexe B – Nommer les objets
Abréviations de noms
Voici des abréviations à utiliser pour nommer nos objets :
Type d’objet Préfixe Exemple
Animated button ani aniEmptying
Check box chk chkWriteOnly
Combo box cbo cboLanguage
Button btn btnCancel
Common Dialog dlg dlgSave
Data Contol dat datStock
Data-bound Combo dbcbo dbcboActicleType
DataGrid datgrd dbgrdStockItems
Data-bound List box dblst dblstAccountCodes
Directory list box dir dirTarget
Drive list box drv drvSource
File list box fil filPick
Form frm frmMainMenu
Frame fra frmPrinters
Graph gra graSharePrices
Grid grd grdQuantities
Horizontal Scroll Bar hsb hsbHueColor
Programmation d’un utilitaire Page 31 sur 32
Image img imgBitMap
Label lbl lblHelpUser
List Box lst lstColorCodes
MCI mci mciSoundEffects
MDI Child Form mdi mdiJuly
Menu mnu mnuFileOpen
MS Tab mst mstDays
OLE ole oleExcel
Picture Box pic picMemoryLeft
ProgressBar prg prgConverting
Report rpt rptEndofYear
RichTextBox rtf rtfDiary
Shape shp shpSquare
Slider sld sldWindSpeed
Spin button spn spnTicketsRequired
StatusBar sta staInformation
Text Box txt txtInputText
Timer tmr tmrStartAlarmCount
Vertical Scroll Bar vsb vsbRatios
Source : http://www.webprofesseur.com/vbnet/15440n3.htm
Programmation d’un utilitaire Page 32 sur 32
Annexe C - Valeurs retournées par MsgBox
Par exemple :
message = MsgBox("Voici ma première fenêtre", vbCritical + vbOKCancel, "Mon titre")
Note : la variable qui recevra la valeur devra être de type Integer.
Description Valeur
retournée
Exemple d’argument
Le bouton OK
s’affiche : valeur par
défaut.
0 VbOkOnly = ok
Les boutons OK et
Annuler s’affichent.
1 VbOkCancel = ok
2 VbOkCancel = Annuler
Les boutons
Abandonner, Réessayer
et Ignorer s’affichent.
3 VbAbortRetryIgnore =
Abandonner
4 VbAbortRetryIgnore = Réessayer
5 VbAbortRetryIgnore = Ignorer
Les boutons Oui et
Non s’affichent.
6 VbYesNo = Oui
7 VbYesNo = Non
Variable pour la
valeur retournée
de MsgBox
Argument
s