Message en vba. Exemples d'utilisation de messages de dialogue (msgbox) dans VBA. Comment savoir sur quel bouton d'un message l'utilisateur a cliqué

La fonction MsgBox permet afficher les informations sur l'écran sous la forme d'une fenêtre.

Vue générale des fonctions :

Message MsgBox

[,code du bouton [,titre]]

message – définit la valeur de l'expression qui sera affichée dans la fenêtre de message. Cette expression peut être du texte, qui doit être cité, et/ou une variable. Pour afficher le texte du message et les valeurs des variables dans une seule fenêtre, utilisez l'opération de concaténation de chaînes (&).

Dim Pi en tant que célibataire

MsgBox "pi="&Pi

Résultat de la macro :

code du bouton – détermine quels boutons et icônes seront affichés dans la fenêtre de message. Si ce paramètre n'est pas précisé, la boîte de message contient uniquement le bouton D'ACCORD.

en-tête - contient le texte qui apparaît dans la barre de titre du message. Si cet argument n'est pas donné, l'en-tête contient la chaîne MicrosoftExceller.

Dim Pi en tant que célibataire

MsgBox Pi, "C'est Pi"

Saisie d'informations en VBA, cela peut être fait en utilisant la fenêtre de saisie :

Fonction Zone de saisie crée une fenêtre de saisie :

Boîte de saisie (message

[,titre[,valeur]])

message – une chaîne de caractères ou une variable de chaîne contenant un message texte destiné à l'utilisateur ;

titre – texte affiché dans la barre de titre du message ;

valeur – Définit les valeurs par défaut affichées dans le champ de texte de la boîte de dialogue.

PROBLÈME 2. L'angle est donné en radians. Convertissez en degrés.

Const pi = 3,14159

Dim g comme entier

Dim comme un entier

Dim s comme entier

r = InputBox("r=", "Valeur de l'angle en radians", pi / 4)

g = Fix(r * 180 / pi)

m = Fix((r*180/pi-g)*60)

s=Fix(((r*180/pi-g)*60-m)*60)

MsgBox g & "degrés" & m & "minutes" & s & "secondes"

18. Opérateur conditionnel

Les instructions conditionnelles sont utilisées lorsque, en fonction d'une condition, il est nécessaire d'effectuer l'une ou l'autre action.

Opérateur conditionnel, correspondant au schéma fonctionnel donné, a la forme :

Si expression Alors

opérateur1

opérateur2

Dans cette construction, l'expression doit être de type booléen.

C'est ainsi que fonctionne l'opérateur. La valeur de l'expression est calculée. Si c'est vrai, l'instruction 1 est exécutée, sinon (l'expression est fausse) l'instruction 2 est exécutée.

Si, selon la condition, une action est effectuée et que sinon rien ne se passe, alors l'algorithme ressemble à :

Opérateur conditionnel dans ce cas a le design :

Si expression Alors

opérateur

Cette entrée peut être appelée « en omettant l’instruction else ».

Ici, l'instruction est soit exécutée, soit ignorée, en fonction de la valeur de l'expression.

Plusieurs instructions If...Then...Else imbriquées sont autorisées, avec autant de niveaux d'imbrication que nécessaire.

Si expression1 Alors

opérateurs1

Sinon expression2 alors

opérateurs2

Sinon expression3 alors

opérateurs3

Sinon expressionN alors

opérateursN

les opérateurs

Pour rendre un programme plus facile à lire, au lieu de plusieurs instructions imbriquées, il est parfois préférable d'utiliser l'instruction Select Case

Sélectionner un cas<expression>

Cas<condition de sélection 1>

<opérateurs 1>

Cas<condition de sélection 2>

<opérateurs 2>

……………..

Cas<condition de sélectionN>

<les opérateursN>

<les opérateurs>

19. Exemples de programmes

TÂCHE 3 . Coefficients connus a, b et c de l'équation quadratique hache 2 +bx+c=0. Calculez les racines d'une équation quadratique.

Données d'entrée : a, b, c.

Données de sortie : x 1, x 2.

Sous-prim7()

Dim x1 comme simple

Dim x2 comme simple

InputBox("A=","Coefficients d'une équation quadratique", 2)

InputBox("B="," Coefficients d'équation quadratique", 3)

InputBox("C="," Coefficients d'équation quadratique", -2)

d = b^2 - 4 * a * c

Si d< 0 Then

MsgBox "Aucune solution valide", vbCritical

x1=(-b+Sqr(d))/(2*a)

x2=(-b-Sqr(d))/(2*a)

MsgBox "X1=" & x1 & Chr(13) & "X2=" & x2, vbInformation

TÂCHE 4.Étant donné un nombre réel X. Pour la fonction dont le graphique est donné ci-dessous, calculez oui=F(X).

Si x<= -1 Then

SinonSi x > 1 Alors

TÂCHE 5. Étant donné des chiffres réels X Et oui. Déterminez si le point avec les coordonnées ( X; oui) la partie ombrée de l'avion.

Point avec coordonnées ( X;oui) appartient à la partie ombrée du plan si :

Si oui<= 2 * x + 2 And

La sortie (transfert à l'utilisateur) des résultats du programme et des autres messages s'effectue via la boîte de dialogue de message.

Pour organiser la sortie des informations, la fonction intégrée est utilisée Boîte de message.

Considérons les options pour son utilisation.

1. oui = Carré(16)

MsgBox et

2. S=99

BoîteMsg("S= ” & S)

c'est un signe enchaînementesperluette;

utilisé pour combiner plusieurs lignes en une seule

3. une = 5 : b = 101

MsgBox("a="& une & " " & " b = " &b)

4.MsgBox("a=" & a & Chr(13) & "b=" & b)

en utilisant cette fonction, vous entrez symbole de transition

sur une nouvelle ligne(convertit un nombre en caractère)

Travailler avec des objets Excel

Modèle objet Excel représente une hiérarchie d'objets subordonnés à un objet Application, ce qui correspond au à Application Excel. Objets Exceller sont classeurs, feuilles de calcul, graphiques, plages de cellules, cellules, etc.

VBA peut manipuler par programme n'importe lequel de ces objets.

Chaque un objet a un ensemble propriétés, méthodes Et événements.

Propriété est une caractéristique ou un paramètre d’un objet.

Méthode est une action qu'un objet peut effectuer.

Événement est une action à laquelle un objet réagit automatiquement.

Gérer un objet dansVBAvous pouvez le faire de 3 manières :

    modifier les propriétés de l'objet ;

    en activant une méthode associée à un objet ;

    définir une procédure qui sera lancée en réponse à un événement.

Sortie d'informations vers une cellule Excel

Une cellule en tant qu'objet Excel dans un programme VBA est désignée Cellules (i, j), Où je- numéro de ligne, j– numéro de colonne de la feuille de calcul.

Oui

Signification Oui sera affiché sur la feuille active du classeur Excel dans une cellule B3

= 0.01

Cellules (3, 2) = Oui

AVEC

Variable B se verra attribuer la valeur

qui est stocké dans la cellule C5

(c'est-à-dire le contenu de la cellule C5)

lire des informations à partir d'une cellule Excel

B = Cellules (5, 3)

outil vba pour saisir des informations

La saisie des informations de l'utilisateur s'effectue via une boîte de dialogue de saisie. Implémenté à l'aide d'une fonction intégrée Zone de saisie.

Dim x Comme Simple

X = Val(InputBox("Entrez x"))

Fonction Zone de saisie renvoie la séquence de caractères saisie dans le champ de saisie ( 15 ) comme type de données Chaîne(chaîne). Fonction intégrée Val() Convertit une valeur de chaîne d'un champ de saisie en une valeur numérique.

Processus informatiques linéaires

Algorithme linéaire se caractérise par une séquence stricte de mise en œuvre des blocs dans l'ordre de leur disposition dans le circuit - de haut en bas. Il n'y a pas de blocs conditionnels. Chaque bloc est exécuté une fois.

Exemple 1 Calculer la valeur de la fonction

à k = 33,5 x = 17

1. Créons un algorithme pour résoudre le problème.

2. Dans la fenêtre de l'éditeur de code, saisissez le code du programme :

Option explicite

Sous-processus_linéaire()

Dim k Comme Unique, x Comme Unique, y Comme Unique'déclaration de variables

x = Val(InputBox("Entrez la valeur de x"))

y = k * Exp(Péché(x))

MsgBox "y="&y' afficher le résultat dans une boîte de dialogue

Fin du sous-marin

Équipe Option explicite oblige à déclarer toutes les variables dans un programme donné. Ne peut être placé que dans la section des annonces du module.

Cela se fait à l'aide des fonctions intégrées InputBox, MsgBox, en modifiant certaines propriétés de certains objets ou en leur appliquant des méthodes appropriées.

Entrée de données

Des valeurs de variables peuvent être saisies :

    Utilisation de la fonctionZone de saisie, qui affiche sa propre fenêtre lors de l'exécution du programme. La valeur renvoyée par la fonction InputBox est de type chaîne. Par conséquent, pour utiliser la valeur saisie comme variable numérique, vous devez en outre la convertir en type numérique à l'aide de la fonction Val. Par exemple, pour saisir la valeur de 5,25 dans une variable, vous devez écrire la ligne de code suivante :

a = Val(InputBox("Entrez a", "Entrée"))

2) Utiliser une zone de texteZone de texte. Le formulaire doit avoir une fenêtre de texte, par exemple Text1, et dans la procédure événementielle, par exemple, pour cliquer sur un bouton de commande, un code de programme doit être écrit qui utilise la propriété text de l'objet Text1 :

Sous-commande privé1_Click()

a = Val(Texte1.texte)

La propriété text de l'objet Text1 a également une valeur de chaîne, elle doit donc être convertie en valeur numérique à l'aide de la fonction Val.

Sortie des résultats

Il existe différentes manières de générer des résultats en VB.

    Le principal opérateur d'impression des valeurs variables dans le langage VB est l'opérateur Print, qui en termes de programmation orientée objet est considéré comme méthode, agissant sur un objet sur lequel les valeurs spécifiées dans la liste seront affichées. Les principaux objets pour lesquels il existe une méthode Print sont le Form et la windowPictureBox graphique.

Si l'objet auquel la méthode Print est appliquée n'est pas précisé, alors la liste des valeurs s'affiche sur le formulaire actif. Par exemple, après avoir exécuté la ligne de code :

    Vous pouvez afficher la valeur d'une variable à l'aide de la fonction MsgBox qui, une fois exécutée, active sa propre boîte de message à l'écran.

Sous-commande privé1_Click()

    La sortie peut être formatée dans une TextBox en modifiant sa propriété Text

Text1.text=str(a)

Il ne faut pas oublier que la propriété Text fonctionne avec une chaîne de caractères, le numéro de sortie est donc converti en chaîne de caractères à l'aide de la fonction str.

    La sortie peut être formatée sur un Label en modifiant sa propriété Caption :

Label1.Caption = « Résultat » & str(a)

Le signe & (+) signifie la concaténation de deux variables chaîne.

Fonction de formatage

Lors de l'affichage des résultats, pour plus de clarté, on utilise souvent la fonction Format, qui renvoie une valeur de type Variant (String) contenant une expression formatée selon les instructions spécifiées dans la description du format.

Syntaxe

Format (Expression[, Format[, FirstDayOfWeek[, FirstWeekOfYear]]])

Expression - argument obligatoire - toute expression valide à formater.

Format - argument facultatif - toute expression de format valide nommée ou définie par l'utilisateur (modèle de format).

Lors du formatage de nombres sans spécifier de modèle de format, la fonction Format produit le même résultat que la fonction Str, c'est-à-dire renvoie une chaîne représentant un nombre. La différence est que lors de la conversion d'un nombre positif à l'aide de la fonction Format, l'espace au début de la ligne (à la place du signe dièse) est perdu, mais lors de la conversion à l'aide de la fonction Str, il reste

Exemples de modèles de format utilisés pour créer des formats de nombres personnalisés

Imprimer Format(6.789, "00.0000") " renverra 06.7890

Imprimer Format(6.789, "##.0000") " renverra 6,7890

  • Lors du processus d'affichage d'un signe sur un écran d'ordinateur, un recodage inverse est effectué, c'est-à-dire une conversion du code binaire du signe en son image.
  • Toute procédure se compose de trois parties : entrée, exécution et sortie. Entrer - ce sont les informations nécessaires pour effectuer la procédure ; conclusion - c'est ce qui s'est passé à la suite de la procédure.

    Les propriétés d'objet, les valeurs de cellule et les valeurs de variable sont tous des exemples d'entrée. Les données d'entrée peuvent être obtenues lors de l'exécution de la procédure auprès de l'utilisateur. On l'appelle entrée de l'utilisateur.

    La forme la plus élémentaire de saisie utilisateur consiste à cliquer sur un bouton dans une boîte de message. Un peu plus compliqué consiste à saisir une seule valeur dans le champ de saisie de la boîte de dialogue.

    4.1.1 Fenêtre de messages

    A l'aide de la boîte de message de la fonction MsgBox(), vous pouvez poser une question puis, en fonction de la réponse, effectuer l'une ou l'autre action.

    La fonction MsgBox() a cinq arguments :

    MsgBox(Invite :=[, Boutons :=] [, Titre :=] [, HelpFile :=, Contexte :=])

    L'argument Invite spécifie le message qui apparaît dans la boîte de dialogue. Tapez le texte (entre guillemets). Utilisez une variable de type chaîne ou uni variables de chaîne et chaînes avec le signe &, par exemple :

    "Cet écran affiche "&AppIication.UsableHeight&" points élevés"

    L'argument Buttons détermine quels boutons apparaîtront dans la boîte de message. Spécifiez-les à l'aide de constantes telles que vbExclamation ou vbOK. VBA représente ces constantes sous forme de nombres. Bien qu'au lieu de constantes Peut Utilisez des nombres pour représenter les boutons, mais nous vous recommandons d'utiliser des constantes car cela vous donnera un code facile à lire. Les paramètres d’argument du bouton peuvent être divisés en plusieurs groupes. Les deux plus importants sont pictogrammes Et boutons. Vous pouvez placer quatre types d'icônes et six types de boutons dans la boîte de message. D'autres paramètres déterminent quel bouton est considéré comme enfoncé par défaut et quelle application est en pause lorsque la boîte de dialogue apparaît : Excel uniquement ou toutes les applications. Le tableau 4.1 présente ces paramètres.

    Tableau 4.1 – Valeurs de la constante d'argument Button de la fonction MsgBox

    Constante Signification Description
    VbOK uniquement Affiche un bouton D'ACCORD
    VbOKAnnuler Affiche les boutons D'ACCORD Et Annuler
    VbAbortRetryIgnore Affiche les boutons Arrêtez, répétez Et Ignorer
    VbOuiNonAnnuler Affiche les boutons Pas vraiment Et Annuler
    VbOuiNon Affiche les boutons Oui Et Non
    VbRéessayerAnnuler Affiche les boutons Répéter Et Annuler
    VbCritique Affiche l'icône de message critique
    VbQuestion Affiche une icône de point d'interrogation
    VbExclamation Affiche l'icône d'exclamation
    VbInformations Affiche l'icône Informations
    VbDefaultButton1 Prend le premier bouton par défaut
    VbDefaultButton2 Accepte le deuxième bouton par défaut
    VbDefaultButton3 Accepte le troisième bouton par défaut
    VbApplicationModal Excel cesse de fonctionner lors de la fermeture de la boîte de message
    VbSystèmeModal Met en pause toutes les applications jusqu'à ce que la fenêtre de message soit fermée

    Pour afficher plusieurs boutons dans une boîte de message, connectez les constantes avec un signe plus. Vous ne pouvez pas afficher deux icônes dans une fenêtre de message, mais Peut contrôler à la fois l’icône et le type de boutons qui apparaissent. La boîte de message apparaît toujours uniquement au centre de l'écran. Si aucun autre bouton n'est spécifié, seul le bouton OK s'affiche dans la boîte de message.

    L'argument Titre spécifie le titre de la boîte de message. Comme Prompt, cet argument doit être une chaîne, une variable chaîne ou une union de chaînes et de variables chaîne. Vous pouvez omettre cet argument, auquel cas le titre de la boîte de message sera par défaut Microsoft Excel.

    Pour spécifier l'aide actuelle, utilisez les quatrième et cinquième arguments (ou ignorez-les). L'argument HelpFile est le nom du fichier d'aide et l'argument Context spécifie la rubrique qu'il contient. Si vous avez spécifié l'un de ces arguments, vous devez également fournir le second. Cela amènera Excel à ajouter automatiquement un bouton d'aide à la boîte de message.

    Le code suivant affiche deux boîtes de message : la première avec le titre - "System_inform" - contient une icône avec un point d'exclamation et un message sur la hauteur d'écran utilisée ; le second avec le titre - "Informations système" - contient un message sur la largeur d'écran utilisée.

    Sous ShowMessageOK()

    Invite MsgBox : ="La hauteur de cet écran est"_

    & Application.UsableHeight & " points", Boutons :=vbExclamation, Titre :="System_inform"

    MsgBox "La largeur de cet écran" & Application.UsableWidth & _

    " points", vbInformation, "Informations système"

    4.2 Prise de décision

    Il est très simple d'afficher plusieurs boutons : utilisez les constantes indiquées dans le tableau 3.1. Vous pouvez afficher des boîtes de message avec des boutons Oui et Non, des boutons Oui, Non et Annuler et des boutons Arrêter, Réessayer et Ignorer. En analysant la valeur renvoyée par la fonction MsgBox dans le code (Tableau 4.2), vous pouvez déterminer sur quel bouton vous appuyez et diriger l'exécution du programme le long du chemin souhaité.

    Tableau 4.2 – Valeurs renvoyées par la fonction MsgBox

    Constante Signification Bouton enfoncé
    VbOK D'ACCORD
    VbAnnuler Annuler
    VbAbandonner Avorter
    VbRéessayer Répéter
    VbIgnorer Sauter
    VbOui Oui
    VbNon Non

    L'exemple de code suivant affiche une boîte de message avec les boutons Oui et Non. Si l'utilisateur clique sur le bouton Oui, une autre boîte de message apparaîtra indiquant « Continuer... ». Si l'utilisateur clique sur Non, un message « Le processus a été interrompu » apparaît. Le deuxième argument utilise vbQuestion plus vbYesNo : la boîte de message contiendra un point d'interrogation et des boutons Oui et Non.

    Sous-questionsOuiNon()

    Dim Indik comme entier

    Indik = MsgBox("Voulez-vous continuer ?", vbQuestion + vbYesNo, "Question à l'utilisateur")

    Si Indik = vbOui Alors

    MsgBox "Continuer...", vbInformation, "Message système"

    MsgBox "Processus interrompu", vbCritical, "Message système"

    Cet exemple de code montre deux façons d'utiliser la fonction MsgBox. Dans le premier cas, les parenthèses sont placées immédiatement après le mot MsgBox et après le troisième argument. Cela signifie que la valeur de retour de la fonction MsgBox est utilisée. Les deux fonctions suivantes n'utilisent pas de valeur de retour, les parenthèses ne sont donc pas incluses. Les boutons situés dans la fenêtre de message déterminent la valeur de la valeur de retour. La valeur de retour de la fonction MsgBox est une constante qui commence par vb et se termine par le mot écrit sur le bouton, tel que OK ou Annuler. Si la boîte de message contient des boutons Oui et Non, la fonction MsgBox renvoie vbYes ou vbNo.

    Dans ce code, la variable Indik est égale au résultat de la fonction MsgBox. La commande If vérifie si la valeur de Indik est égale à vbYes ; si tel est le cas, il prend les mesures appropriées.

    4.3 Fenêtre de saisie

    La fonction InputBox() est un peu plus complexe que MsgBox() et vous permet de saisir une valeur réelle ou une chaîne de texte. Puisque InputBox() reçoit une valeur, il est inutile de l'utiliser sans utiliser la valeur d'entrée. Par conséquent, cette fonction est toujours écrite entre parenthèses.

    La fonction InputBox() peut prendre jusqu'à sept arguments :

    InputBox(prompt[, titre] [, par défaut] [, xpos] [, ypos] [, fichier d'aide, contexte])

    Seul le premier est nécessaire - Invite, qui spécifie un message dans la fenêtre. Le second est le titre.

    La troisième est la valeur par défaut de la fenêtre de saisie. Les quatrième et cinquième arguments indiquent la position de la fenêtre de saisie. S'ils sont ignorés, la fenêtre sera située au milieu de l'écran.

    Les sixième et cinquième arguments spécifient le fichier d'aide et son sujet. Si vous utilisez l’un d’eux, vous devez également utiliser l’autre. Excel ajoutera alors un bouton Aide à la fenêtre de saisie.

    La fonction InputBox() renvoie toujours une chaîne. Même si l’utilisateur saisit un nombre, il s’agit en réalité d’une chaîne. Dans la plupart des cas, VBA convertit une chaîne en nombre. Cependant, il arrive parfois que la traduction soit mal effectuée. Dans ce cas, vous devez convertir la valeur de retour en un autre type de données. Pour ce faire, utilisez l'une des fonctions de traduction, telle que la fonction Cint(value), qui convertit la valeur de retour en nombre entier.

    Lorsque vous cliquez sur Annuler, vous vous attendez à ce que la valeur de retour soit vbCancel. Cependant, ce n'est pas vrai. Puisque InputBox() renvoie une chaîne, cliquer sur le bouton Annuler la fera revenir ligne vide(ensemble de guillemets - ""). Considérons l'exemple suivant, si rien n'est saisi (ligne vide), alors le sous-programme se termine.

    Sous Vvod_lnputBox()

    Dim s As String, réel As Single

    s = InputBox(Prompt:="Quel salaire ?:", _

    Titre :="Question", Valeur par défaut : =550)

    Si s = "" Alors quittez Sub

    réel = CSng(s)

    MsgBox "Le salaire est de" &s & "impôts" &sreal * 0,13

    Parfois, il est nécessaire que l'utilisateur saisisse uniquement un type spécifique de données. Dans ce cas, utilisez la méthode InputBox() au lieu de la fonction InputBox(). En installant l'application. avant InputBox(), vous dites à VBA d'utiliser la méthode InputBox() d'Excel plutôt que la fonction VBA. La méthode InputBox() a également un huitième argument : Type. En spécifiant un type, vous demandez (à l'utilisateur) de saisir uniquement un type spécifique de données. Pour autoriser plusieurs types de données, ajoutez des valeurs pour les différents types de données. Toutefois, si vous utilisez la méthode InputBox(), cliquer sur le bouton Annuler renvoie False plutôt qu'une chaîne vide.

    4.4 E/S utilisant des cellules Excel

    L'objet ActiveCell peut être utilisé efficacement pour saisir des données source à partir de cellules spécifiques dans une feuille de calcul Excel, ainsi que pour générer des résultats de calcul dans des cellules. L'objet Range est utilisé pour spécifier des cellules. Un objet ActiveCell pointe vers la cellule (ou l’objet Range) qui a le focus lors de la saisie au clavier. La propriété Value est utilisée pour cela. Par exemple, dans la cellule avec l'adresse A5, vous devez écrire la valeur de la variable Rost :

    Plage (« A5 »).Sélectionnez

    ActiveCell.Value = Croissance

    La procédure inverse est similaire :

    Rost = ActiveCell.Valeur

    S'il est nécessaire de lire un grand nombre de données provenant de différentes cellules dont les adresses peuvent être calculées, il est conseillé d'utiliser la méthode Offset(R,C), où R est un décalage vers le bas de R lignes par rapport à la ligne de la cellule active, C est un décalage de C colonnes vers la droite par rapport à la colonne de la cellule active. Par exemple, la ligne suivante écrit la valeur de la variable Rost dans la cellule B7.

    1. Fonction InputBox

    La fonction InputBox a la syntaxe suivante :

    Variable = Zone de saisie(Invite[, Titre] [, par défaut] [, Xpos] [, Ypos] [, help_file, contents])

    Cette fonction nécessite uniquement l'argument Invitation Valeur des arguments Invitation– le seul argument requis pour cette fonction est une chaîne de texte qui s'affiche dans la boîte de dialogue de saisie sous forme de message. Ce texte doit être placé entre guillemets doubles.

    Argument Titre

    Argument défaut spécifie la valeur affichée par défaut dans le champ de saisie jusqu'à ce que l'utilisateur saisisse une valeur. Si cet argument est omis, le champ de saisie apparaît vide.

    Arguments facultatifs Xpos Et Ypos définir la position de la fenêtre de saisie sur l'écran. Arguments fichier_aide Et contenu

    La valeur de retour de la fonction InputBox est la valeur saisie par l'utilisateur dans la zone de saisie.

    2. Fonction MsgBox

    Une boîte de message est créée par la fonction MsgBox, qui a la syntaxe suivante :

    Variable = Boîte de message(Invite[, Boutons][, En-tête[, help_file, contenu])

    Valeur des arguments Invitation– le seul argument requis pour cette fonction est une chaîne de texte affichée sous forme de message dans la boîte de dialogue. Ce texte doit être placé entre guillemets doubles. Notez l'utilisation de parenthèses dans la syntaxe MsgBox - elles indiquent que dans ce cas MsgBox est une fonction qui renvoie une valeur. Si les parenthèses sont omises, alors pour VBA, c'est le signe que cette expression ne renvoie pas de valeur. Si vous souhaitez renvoyer une valeur, vous devez utiliser un code similaire au suivant :

    Dim i comme entier

    Le résultat de l'exécution de ce code dans VBA sera une boîte de dialogue avec trois boutons « Oui », « Non », « Annuler » et une icône de point d'exclamation dans un triangle jaune.

    Si aucun argument n'est donné Boutons, alors VBA ne propose qu'un seul bouton "OK". Argument Boutons permet de gérer les paramètres suivants de la fenêtre de messages :

    ¨ Le nombre de boutons dans la fenêtre.

    ¨ Types de boutons et leur emplacement dans la fenêtre.

    ¨ Icônes affichées dans la fenêtre.

    ¨ Quel bouton est attribué par défaut.

    ¨ Mode (modalité) de la fenêtre de message.

    Le tableau 1 montre les paramètres possibles pour cet argument. Le premier groupe de valeurs définit le nombre et le type de boutons. La seconde permet de sélectionner l'icône affichée dans la fenêtre. Le troisième attribue le bouton par défaut. Le quatrième groupe définit le mode de fenêtre de message. Pour créer la valeur de l'argument final Boutons Vous ne pouvez utiliser qu'une seule valeur de chaque groupe, en les combinant avec un signe plus.

    Groupe Constante Signification Description
    Groupe 1 vbOKOnly Affiche uniquement le bouton OK (réglage par défaut)
    VbOKAnnuler Affiche les boutons OK et Annuler
    VbAbortRetryIgnore Affiche les boutons Arrêter, Répéter et Sauter.
    VbOuiNonAnnuler Affiche les boutons Oui, Non et Annuler
    vbOuiNon Affiche les boutons Oui et Non
    VbRéessayerAnnuler Affiche les boutons Rétablir et Annuler
    Groupe 2 VbCritique Affiche une icône d'interdiction
    VbQuestion
    VbExclamation Affiche une icône d'avertissement
    VbInformations Affiche une icône d'information
    Groupe 3 VbDefaultButton1 Le premier bouton est le bouton par défaut
    VbDefaultButton2 Le deuxième bouton est le bouton par défaut
    VbDefaultButton3 Le troisième bouton est le bouton par défaut
    VbDefaultButton4 Le quatrième bouton est le bouton par défaut
    Groupe 4 VbApplicationModal Mode application : L'utilisateur doit fermer la boîte de message avant de poursuivre l'application en cours.
    VbSystèmeModal Mode système : toutes les applications sont indisponibles jusqu'à ce que l'utilisateur ferme la fenêtre de message
    Groupe supplémentaire vbMsgBoxHelpButton Affiche le bouton Aide
    vbMsgBoxSetForeground Fait de la fenêtre de message la fenêtre de premier plan
    vbMsgBoxRight Affiche une boîte de message alignée sur le bord droit de la fenêtre de l'application
    vbMsgBoxRtlReading Pour l'hébreu et l'arabe, précise que le texte doit être affiché de droite à gauche.

    Tableau 1. Paramètres de l'argument Boutons Fonctions MsgBox

    Pour éviter les erreurs lors de la saisie des valeurs d'argument Boutons, utilisez la liste de constantes qui apparaît après avoir saisi le signe "+". Le signe "+" est utilisé pour combiner plusieurs constantes lors de la spécification d'un argument complexe Boutons.

    Argument Titre utilisé pour spécifier le texte qui est placé dans la barre de titre de la fenêtre de saisie. Si cet argument n'est pas spécifié, Microsoft Excel s'affiche dans la barre de titre.

    Arguments fichier_aide Et contenu sont utilisés si vous créez votre propre système d'aide pour votre application.

    Le tableau 2 fournit une liste de valeurs renvoyées par la fonction MsgBox . La valeur de retour dépend du bouton sur lequel l'utilisateur a appuyé.

    Valeur de retour Bouton
    D'ACCORD
    Annuler
    Arrêt
    Répéter
    Sauter
    Oui
    Non

    Tableau 2. Valeurs renvoyées par la fonction MsgBox

    Le meilleur type de retour de la fonction MsgBox est Integer.

    Objets Plage et Cellules

    Dans VBA, les cellules de la feuille de calcul sont traitées comme des objets Range. C'est l'objet le plus couramment utilisé.

    L'objet Range utilise le format A1 lorsque vous travaillez avec des cellules.

    Format A1. Le lien est constitué d'un nom de colonne (désigné par les lettres A à IV, 256 colonnes maximum) et d'un numéro de ligne (de 1 à 65536). Par exemple, A77. Pour faire référence à une plage de cellules, spécifiez les adresses des cellules supérieure gauche et inférieure droite de la plage, séparées par deux points. Par exemple, B10:B20, 7:7 (toutes les cellules de la 7ème ligne), 5:10 (toutes les cellules entre la 5ème et la 10ème ligne incluse), D:D (toutes les cellules de la colonne D), H : J (toutes les cellules de la colonne D). cellules entre les colonnes H et J inclus). Une référence absolue est indiquée par un signe dollar devant le nom de la ligne ou de la colonne

    L'objet Cells utilise le format R1C1 lorsque vous travaillez avec des cellules.

    Format R1C1. Au format R1C1, après la lettre « R » est indiqué le numéro de ligne de la cellule, après la lettre « C » le numéro de colonne. Par exemple, la référence absolue R1C1 est équivalente à la référence absolue $A$1 pour le format A1. Pour définir une référence relative, spécifiez le décalage par rapport à la cellule active. Le mélange est indiqué entre crochets. Le panneau indique le sens de déplacement. Par exemple, R[-3]C (une référence relative à une cellule trois lignes plus haut dans la même colonne). RC (référence relative à une cellule située deux lignes en dessous et deux colonnes à droite). R2С2 (référence absolue à la cellule située en deuxième ligne et en deuxième colonne). R[-1] (référence relative à la ligne au-dessus de la cellule actuelle), R (référence absolue à la ligne actuelle).

    L'adresse complète de la cellule peut également contenir le nom et l'adresse du travailleur. Le nom de la feuille est suivi du signe « ! » et l’adresse du classeur est placée entre crochets. Par exemple : [Book1.xls]Sheet5!D$2.

    Les éléments suivants peuvent agir comme un objet Range :

    § cellule séparée ;

    § plage de cellules sélectionnée ;

    § plusieurs plages de cellules sélectionnées (c'est-à-dire un ensemble de plages non adjacentes) ;

    § ligne et colonne ;

    § plage tridimensionnelle (c'est-à-dire composée de plages situées sur différentes feuilles de calcul).

    Propriétés des objets de plage et de cellules

    Propriétés Description et valeurs autorisées
    Valeur Renvoie une valeur d'une cellule ou d'une plage (vers une cellule ou une plage) : X=Range("A1").Value Range("A1").Value=10
    Nom Renvoie le nom de la plage : Range("B1:B4").Name="Application"
    Adresse Renvoie la position actuelle de la plage
    Compter Renvoie le nombre de cellules dans une plage
    Compenser Renvoie la valeur de décalage d'une plage par rapport à une autre
    Redimensionner Vous permet de modifier la sélection de plage actuelle
    Région actuelle Renvoie la plage actuelle qui contient la cellule spécifiée et est délimitée par une ligne et une colonne vides.
    Envelopper le texte Vrai (Faux) – autorise (n'autorise pas) le retour à la ligne du texte lorsqu'il est entré dans la plage.
    Colonne entière, Ligne entière Renvoie la ligne et la colonne.
    Largeur de colonne, hauteur de ligne Renvoie la largeur de colonne et la hauteur de ligne d'une plage.
    Police de caractère Renvoie un objet Font. Par exemple : With Worksheets("Z3").Range("F10").Font .Size=22 .Bold=True .Italic=True Terminer par
    Formule Formule au format A1. Par exemple, voici comment saisir une formule dans la cellule C2 : Range("C2").Formula="=$B$2+$A$2"
    FormuleLocal Formule au format A1, tenant compte de la langue de l'utilisateur (pour les versions d'Excel non anglaises). Par exemple : Range("C1").FormulaR1C1= "=PI ()"
    FormuleR1C1 Formule au format R1C1. Par exemple, Range("C1").FormulaR1C1= "=R1C1+2"
    FormuleR1C1Local Formule au format R1C1 tenant compte de la langue de l'utilisateur (pour les versions d'Excel non anglaises).
    Alignement horizontal Alignement horizontal. Valeurs possibles : xlHAlignGeneral (normal), xlHAlignCenter (centre), xlHAlignCenterAcrossSelection (centre de sélection), xlHAlignJustify (largeur), xlHAlignRight (droite), xlHAlignLeft (gauche) et autres.
    Alignement vertical Alignement vertical. Valeurs possibles : xlVAlignBottom (au bord inférieur), xlVAlignCenter (au centre), xlVAlignTop (au bord supérieur) et autres.

    Méthodes des objets Range et Cells

    Méthodes Actions
    Adresse Renvoie l'adresse de la cellule.
    Ajustement automatique Ajuste automatiquement la largeur des colonnes et la hauteur des lignes. Par exemple : Range("B1:B3").Columns.AutoFit L'utilisation de la propriété Columns ou Rows dans ce cas est nécessaire, car la valeur de la plage doit être constituée de lignes ou de colonnes, sinon une erreur sera générée.
    Clair Efface la plage. Par exemple : Range("B1:B20").Clear
    Copie Copie une plage vers une autre plage ou dans le presse-papiers (si la destination n'est pas spécifiée). Par exemple, voici comment copier les valeurs de plage d'une feuille (L1) à une autre (L2) : Worksheets("З1").Range("D1:D5").Copy Destination:=Worksheets("P2" ).Plage(“D5”) ")
    Couper Copie la plage avec suppression (coupes) vers une autre plage ou presse-papiers (si le paramètre Destination n'est pas spécifié). Par exemple, copions une plage de cellules avec suppression dans le presse-papiers : Worksheets("Sheet1").Range("D1:E5").Cut
    Supprimer Supprime une plage. Le paramètre Shift détermine la direction dans laquelle les cellules sont décalées lors de leur suppression. Par exemple : Range("B6:D6").Delete Shift:=xlShiftToLeft
    Insérer Insère une cellule ou une plage de cellules. Par exemple, voici comment insérer une ligne avant la sixième ligne dans la feuille « Sheet2 » : Worksheets(« Sheet2 »).Rows(6).Insert
    Sélectionner Sélectionne une plage : Range("A1:C7").Sélectionnez

    Méthodes d'objet Range et Cells qui implémentent les commandes Excel

    Méthodes Actions
    Série de données Crée une progression. DataSeries(rowcol,date,step,stop,trend) La méthode est réalisée manuellement à l'aide de la commande Edit\Fill\Progression
    Remplissage automatique Saisie automatique. Remplit automatiquement les cellules d'une plage avec des éléments de la séquence : Objet(Plage, Type).
    Filtre automatique Filtre automatique. Implémente une requête pour filtrer les données sur une feuille de calcul : Object.AutoFilter(Field, Condition1, Operator, Condition2) Correspond à la commande Data\Filter\AutoFilter.
    Filtre avancé Filtre avancé. Correspond à la commande Data\Filter\Advanced Filter.
    Consolider Combiner les données de plusieurs plages dans un seul tableau final. Correspond à la commande Données\Consolidation.
    Trouver Recherche de données. Appelé manuellement avec la commande Edit\Find.
    TblGoalRecherche Sélection du paramètre. Cela se fait manuellement à l'aide de la commande Outils\Paramètre Sélection.
    Trier Tri des données. Effectué manuellement à l'aide de la commande Data\Sort
    Total Ajoute des sous-totaux. Appelé manuellement par la commande Data\Subtotals.

    Note . Il faut surtout noter qu'en VBA (contrairement à Excel) l'opération d'affectation s'effectue quel que soit l'état de la cellule et ne le modifie pas. Ceux. Pour attribuer une valeur à une cellule (ou pour obtenir sa valeur), il n'est pas du tout nécessaire que cette cellule soit active (rappelez que dans Excel, avant de la saisir dans une cellule, il faut l'activer) ; elle ne deviendra pas active (si ce n'était pas le cas avant), même après la mission, cela n'a aucun sens.