29
Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

Embed Size (px)

Citation preview

Page 1: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

Cours VB 2007/2008 1

Chapitre 2

ELEMENTS DE BASE DU LANGAGE VISUAL BASIC:

- SYNTAXE- STRUCTURES DE CONTROLE

Page 2: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

2 Cours VB – ISG 2007/2008

I. Types

variables et constantes Tableaux Types de données

spécifiques

Page 3: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

3 Cours VB – ISG 2007/2008

I.1 Variables et Constantes

Le nom d’une variable doit forcément respecter les règles suivantes :

Ne doit pas contenir plus de 40 caractères

Peut inclure un mélange de lettres, de chiffres et du symbole « _ » souligné

Le premier caractère doit forcément être une lettre

Les majuscules et les minuscules sont identiques

Les caractères accentués sont autorisés

Ne doit pas être un mot réservé de VB

Les constantes sont déclarées dans une feuille ou un module à l’aide de l’instruction : Const : pour être utilisée localement Global Const : pour être utilisée

globalement

Page 4: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

4 Cours VB – ISG 2007/2008

I.2 Les types simples prédéfinis 

Type de données

Taille Plage de valeurs

Suffixe

Byte 1 octet 0 à 255 Integer (Entier)

2 octets

-32768 à + 32767 %

Long (Entier long)

4 octets

-2.147.483.648 à

+ 2.147.483.647 &

Single (Réel simple précision)

4 octets

(-3.042.823)38 à(+3.402823)38

!

Double (Réel double précision)

8 octets

(-1.79769313486232)308 à(+1.79769313486232)

308

#

Currency

(Monnaie) 8 octets

-9223372036854775808 à

+9223372036854775

807

@

Page 5: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

5 Cours VB – ISG 2007/2008

I.2 Les types simples prédéfinis 

String * N (Chaîne statique de N caractères)

1 octet par caractère

0 à 65 535 caractères

$

String (Chaîne dynamique)

Au maximum 231 caractères soit 2 milliards de caractères

$

Boolean (Booléen)

2 octets True (1) et False (0)

Date 8 octets Jours entre 1 janvier 1000 et31 décembre 9999 et des heures entre 0:00:00 et 23:59:59

Variant 16 octets pour les nombres et 22 octets + 1 octet par caractères pour les chaînes de caractères

Les plages de tous les autres types

Page 6: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

6 Cours VB – ISG 2007/2008

I.3 Déclarations de variables en VB

Il existe 3 manières différentes pour déclarer les variables :

Par défaut (Default) Implicitement (Implicit) Explicitement (Explicit)

Rq: Les variables sont initialisées lors de leur déclaration

a) Les déclarations par défaut  Si une variable n’est pas implicitement ou explicitement

déclarée, il lui est assigné le type variant par défaut. Cette variable peut alors contenir des données de type

numérique (entier, réel), chaîne de caractères ou Date. Selon ce qu’on écrit :

Varaible_1 = 28 ‘ Variable_1 est Integer Varaible_1 = ’’OUI ’’ ‘ Variable_1 est String

La fonction VarType permet de connaître la représentation interne d’une variable Variant (retourne un numérique exemple 2 si integer).

Si une variable variant contient une valeur invalide, cette valeur correspond à la valeur NULL (valeur nulle).

Les fonctions IsEmpty et IsNull permettent respectivement de tester ces conditions.

Page 7: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

7 Cours VB – ISG 2007/2008

b) Les déclarations implicites

1er cas : L’instruction DefType indique que les variables commençant par une lettre définie à l’aide de celle-ci sont du type déclaré.

Exemples : DefInt A-E Les variables commençant par A ou B ou C ou D ou

E sont de type Integer. DefSng X, Y Les variables commençant par X ou Y sont de

type Single. DefStr H, L-O Les variables commençant par H ou une lettre

de L à O sont de type String.

2ème cas : On peut aussi utiliser le suffixe d’un type pour utiliser une variable sans la déclarer.

Compteur% = Compteur% +1 Ch1$ = ’’ Ceci est une chaîne de caractères ’’

on a le droit de ne pas répéter le suffixe à chaque fois à condition de respecter la conformité des types

val_majoration% = 25

val_majoration = 98

mais on n'a pas le droit dans la même procédure ou fonction de faire

val_majoration% = 25 val_majoration = "azerty"

val_majoration$ = "azerty"

Page 8: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

8 Cours VB – ISG 2007/2008

c) Les déclarations explicites 

Dim ou Static dans une Procédure/Fonction: variable locale.

Dim dans la section Déclarations d’un module (ou d’une feuille), la variable est utilisable par tous les sous programmes du module (ou de la feuille).

Global dans la section Déclarations d’un module tous les modules et feuilles de l’application peuvent l’utiliser.

=>Pour déclarer explicitement une variable, il faut d’abord connaître sa portée (locale ou globale).

Exemple : Dim A As Long Dim Ch_1 As String Static X As Integer Global V As Single

Page 9: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

9 Cours VB – ISG 2007/2008

c) Les déclarations explicites 

Si l’instruction est Dim, les variables sont réinitialisées à 0, ou Empty à chaque appel.

Si l’instruction est Static, les variables gardent leur valeur avant l’exécution de celle-ci.

Remarque : Il est recommandé de toujours effectuer des déclarations explicites, en les forçant par Option ExplicitExercice: Ecrire un programme qui affiche le nombre de click sur un bouton de commande.

Page 10: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

10 Cours VB – ISG 2007/2008

I.4 Les types structurés  a) Tableaux

i. Tableaux à une dimension Déclaration:

Tous les tableaux en VB doivent être déclarés (pas de déclaration par défaut)

La dimension d’un tableau est définie entre parenthèses

Par défaut, la limite inférieur d’un tableau est 0 mais peut être modifiée par l’instruction Option Base obligatoirement utilisée dans la section générale des modules. Cette instruction admet uniquement les valeurs 0 ou 1 (Option Base 1)

Exemples : Déclarations d’un tableau de 30 entiers

Dim test%(29) Dim test(29) As Integer

Déclaration d’un tableau de 7 chaînes de caractères

Dim Tsemaine(6) As String On pourra alors écrire :

Tsemaine(0) = ’’Lundi ’’Tsemaine(1) = ’’Mardi ’’...Tsemaine(6) = ’’Dimanche ’’

Page 11: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

11 Cours VB – ISG 2007/2008

ii. Définition des limites basses et hautes d’un tableau

Si on veut fixer les limites supérieures et inférieures d’un tableau, la declaration prend la forme:

Dim NomVariableTableau(LimiteInférieure To LimiteSupérieure) As TypeDeDonnées

Exemples: Dim Tjours(1 To 31) As Integer Dim Test%(-50 To 30)

On peut lire les limites d’un tableau à l’aide des instructions :

UBound : donne la limite supérieure du tableau LBound : donne la limite inférieure du tableau

Lecture de la limite supérieureLimiteSup% = UBound(NomTableau,

NuméroDimension)

Lecture de la limite inférieureLimiteInf% = LBound(NomTableau, NuméroDimension)

Page 12: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

12 Cours VB – ISG 2007/2008

iii. Tableaux à plusieurs dimensions

VB gère des tableaux pouvant aller jusqu’à 60 dimensions.

Leur déclaration est similaire à celles des tableaux à une dimension.

Les limites basses et hautes peuvent être définies séparément pour chaque dimension.

La limite basse est par défaut définie pour chaque dimension à 0 et peut être modifiée à 1 par l’instruction Option Base.

Exemples: ‘Deux dimensions:

Dim objets%(1 To 34, -23 To 23) ‘Trois dimensions:

Dim A$(20, 20, 20) ‘Quatre dimensions:

Dim B(1 To 10, 2 To 10, -10 To -5, 0 To 30) As Integer

Page 13: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

13 Cours VB – ISG 2007/2008

iv. Redimensionnement d’un tableau

Il est possible de redimensionner des tableaux en exécution avec les instructions :

ReDim : Dans ce cas, toutes les valeurs seront perdues

Exemple : Redim Test%(3)

et Redim Preserve : Dans ce cas, on préserve toutes les données déjà affectées

Exemple : Redim Preserve Test%(3)

Page 14: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

14 Cours VB – ISG 2007/2008

v. Portée d’un tableau

L’instruction Public permet de déclarer : des tableaux globaux au niveau

de la feuille dans la section générale de la feuille

ou au niveau du programme, dans la section générale du module

L’instruction Private permet de déclarer des tableaux visibles par exemple au niveau d’un module mais pas au niveau du programme.

Page 15: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

15 Cours VB – ISG 2007/2008

b) Les types structurés : Types de données spécifiques ou

personnalisés  Une variable de type personnalisé est déclarée

entre les mots-clés :Type … End Type

Contrairement aux tableaux, ce type structuré permet de regrouper des données de types différents.

TYPE PersonneNom As String * 40Numéro As IntegerAdresse As StringDateNaissance As Date

End Type

Dim Etudiant1 As Personne

L’accès individuel aux différents éléments d’une variable personnalisée ou enregistrement peut être fait par l’instruction : NomEnregistrement.NomElement

Etudiant1.Nom 'permet d’obtenir le nom de l’Etudiant1

Page 16: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

16 Cours VB – ISG 2007/2008

II. Structures De Contrôle

Principaux opérateurs en VB

Actions VB: Simples Sélectives Répétitives

Types de sous programmes

Page 17: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

17 Cours VB – ISG 2007/2008

II.1 Les principaux opérateurs en VB

Opérateurs arithmétiques ^ Puissance

* / Multiplication et division \ Division entière (tronque la

partie décimale)

Mod Modulo (reste de la division entière)

+ - Addition et soustraction

Opérateurs de comparaison : <, <=, >, >=, <>, =

Opérateur de concaténation de deux chaînes de caractères : &, +

Opérateurs logiques : NOT, AND, OR et XOR

Page 18: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

18 Cours VB – ISG 2007/2008

II.2 Les actions simples

La déclaration Toutes les instructions de déclaration sont

considérées comme des actions simples.

Le commentaire: Rem ou du symbole ' . Rem Ceci est un exemple de commentaire. ‘ Ceci est un exemple de commentaire. i = i + 1 ‘incrémentation de la variable i

L’affectation : Var = Valeur

où Var est une variable et Valeur est une valeur ou variable ou expression

Les 2 membres d’une affectation doivent être de même type.

Si le membre gauche est Variant, celui de droite peut être String, numérique ou Variant.

Si le membre de droite est Variant alors celui de gauche est Variant et il peut être String ou numérique selon la valeur.

Il existe d’autres instructions simples telles que les appels aux sous programmes.

Page 19: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

19 Cours VB – ISG 2007/2008

II.3 Les actions sélectives

Le test If

If Chif_Aff >= 10000 Then Taux = 0.10

Else Taux = 0.05

End If

If jour = “lundi” Then Temp% = 20Else: If jour =”mardi” Then Temp% = 25Else: If jour = “mercredi” Then Temp% = 21Else: If jour =”jeudi” Then Temp% = 19Else: If jour = “Vendredi” Then Temp% = 20Else : If jour = “Samedi” Then Temp% = 21Else Temp% = 20End If

If Condition1 ThenAction1ElseIf condition2 ThenAction21Action22Else: If condition3 Then Action3Else: If condition4 Then Action4End If

Page 20: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

20 Cours VB – ISG 2007/2008

Le test IIf

IIf ( Chif_Aff >= 10000 , Taux = 0.10 , Taux = 0.05)

L’instruction Choose

Index prend les valeurs 1, 2, 3, ... jusqu’au nombre d’expressions désignées (13 au maximum).

Exemple : taux = Choose(Ind_1, 0.05, 0.07, 0.1, 0.15)

Si Ind_1 = 1 alors taux = 5% Si Ind_1 = 2 alors taux = 7% Si Ind_1 = 3 alors taux = 10% Si Ind_1 = 4 alors taux = 15%

II.3 Les actions sélectives

Page 21: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

21 Cours VB – ISG 2007/2008

L’instruction Select

Select moyennecase 16 To 20

Mention = ’’T. Bien’’case 14 To 15.99

Mention = ’’Bien’’case 12 To 13.99

Mention = ’’A. Bien’’case 10.5 , 11 , 11.5

Mention = ’’Passable ’’case Else

Mention = ’’Sans’’

End Select

II.3 Les actions sélectives

Page 22: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

22 Cours VB – ISG 2007/2008

La boucle While... Wend

i = 1Sal_Annuel = 0While i <= 12

Sal_annuel = Sal_Annuel + Salairei = i +1

Wend Les boucles Do While et Do Until

Remarques : Ces deux formes du Do ... Loop sont identiques à l’instruction While ... Wend. La déffirence entre while et do … c’est qu’on peut sortir à tout moment de la boucle par l’instruction Exit Do.

II.3 Les actions Répétitives

Page 23: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

23 Cours VB – ISG 2007/2008

Les boucles Do… Loop … condition

Dans ces 2 formes, on entre systématiquement dans le corps de la boucle quelque soit l’état de la condition et on répète l’exécution tant que la condition est vérifiée ou jusqu'à ce qu’elle ne le soit plus.

Si la condition est fausse, on exécute une fois ACTION est on sort de la boucle.

Remarque : On peut sortir à tout instant de ces boucles à l’aide de l’instruction Exit Do.

Do

Action

Loop While Condition

Do

Action

Loop Until Condition

II.3 Les actions Répétitives

Page 24: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

24 Cours VB – ISG 2007/2008

La boucle For

Total_Notes = 0 For i = 1 To 10 Total_Notes = Total_Notes + NoteNextMoy = Total_Notes / 10

Par défaut le pas est égale à 1 sinon il est égale à la valeur définie après le mot réservé Step.

Remarque : On peut sortir à tout moment d’une boucle For par l’instruction Exit For.

II.3 Les actions Répétitives

Page 25: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

25 Cours VB – ISG 2007/2008

II.4 Les sous programmes

Outre les procédures-événements déjà vues (chap 1), il est possible d’écrire des procédures ou des fonctions dites générales

Elles ne sont associées à aucun contrôle ou feuille et sont stockées dans un fichier feuille ou module.

a) Procédure 

b) Fonction Elle retourne une valeur contenue dans le nom de la fonction. Il faut préciser le type de la valeur retournée.

[Static] [Private] [Public] Sub nom_Sub (Liste d'arguments)

Instructions

End Sub

[Static] [Private] [Public] Function nom_function (Liste d'arguments) As type

Instructions

nom_function = var

End Function

Page 26: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

26 Cours VB – ISG 2007/2008

c) Appel Procédure/Fonction

Appel de procédure

Remarque: La liste d’arguments peut-être vide, auquel cas, dans l’appel, il n’y a que le nom de la procédure qui apparaît.

Appel de fonction

Remarque: Si la liste d’arguments est vide, les parenthèses sont obligatoires.

Page 27: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

27 Cours VB – ISG 2007/2008

d) Remarques

Il est tout à fait possible de quitter la procédure/fonction à tout moment par l’instruction :

Exit Sub pour la procédure. Exit function pour la fonction, après avoir

affecter à la variable nomF le résultat qu’elle doit retourner.

Les procédures/fonctions définies Private dans une feuille sont « locales » seulement à celle-ci. Seules les procédures/fonctions de ce fichier peuvent les appeler.

Les procédures/fonctions définies dans un module sont globales à l’ensemble de l’application. Sauf si une procédure/fonction est définie avec Private.

Page 28: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

28 Cours VB – ISG 2007/2008

II.5 Les fonctions prédéfinies de VB 

VB dispose de fonctions et procédures qui lui sont propres et qu’on peut appeler dans toute application

Fonction Valeur RetournéeAbs Valeur absolue d’un nombre (Absolute value)Asc le code ASCII ou ANSI correspondant à un

caractèreChr le caractère correspondant à un code ASCII

ou ANSI donnéCos Cosinus d’un angleFormat Date ou nombre convertis en une chaîne de

caractères en indiquant son formatInstr Localise une sous chaîne dans une chaîneLeft Supprime un certain nombre de caractères à gauche d’une chaîne de caractèresLen Taille d’une chaîne de caractèresMid Elimine une portion quelconque d’une chaîne de char Now Donne l’heure et la date systèmeRight Supprime un certain nombre de caractères à droite d’une chaîne de caractèresRnd nombre aléatoireSin Sinus d’un angleSqr Racine carrée d’un nombreStr Convertit un nombre en une chaîne de

caractèresTrim Supprime les espaces à gauche et à droite

d’une chaîne de caractèresVal Convertit une chaine de caractères numérique en une valeur numérique

Page 29: Cours VB 2007/2008 1 Chapitre 2 ELEMENTS DE BASE DU LANGAGE VISUAL BASIC: - SYNTAXE - STRUCTURES DE CONTROLE

29 Cours VB – ISG 2007/2008

77UG7FX