Impression de débogage VBA

Débogage Excel VBA.

Debug Print est l'un des outils utiles présentés dans l'éditeur VBA pour comprendre le fonctionnement d'un programme et il aide à analyser les changements dans les valeurs des variables créées dans le programme VBA. Il montre la sortie de la fenêtre immédiate lorsque nous exécutons le programme sans aucun bogue.

Debug.print offre les deux principaux avantages par rapport à l'utilisation de Msgbox pour afficher la sortie du code. Il élimine le besoin de cliquer sur le bouton OK à chaque fois et affiche le journal des valeurs de sortie renvoyées dans les fenêtres immédiates. Cela fait gagner beaucoup de temps aux utilisateurs. Le présent article explique l'utilisation d'Excel VBA Debug Print avec de nombreux exemples et explique comment l'utiliser en couvrant les choses suivantes.

Qu'est-ce que l'impression de débogage VBA?

Debug est un objet dans VBA et utilisé avec les deux méthodes appelées Assert et Print. L'impression est utile pour afficher le message et affirme être utile dans l'évaluation des conditions. Dans VBA, l'instruction debug.print est utilisée à n'importe quel endroit du programme de codage pour afficher les valeurs d'une variable ou des messages dans la fenêtre d'exécution. Celles-ci ne nécessitent aucun accusé de réception ni confirmation et ne montrent aucun effet sur le code développé. Il est sûr et préférable de l'utiliser dans le code dans la situation pour faciliter l'accès à de nombreux utilisateurs. Celles-ci sont simplement utiles pour tester ou évaluer le code pour confirmer qu'il fonctionne correctement ou non. Impression des variables, chaînes, nombres, tableau, valeurs dans des feuilles Excel et des feuilles vides et actives.

Comment utiliser l'impression de débogage Excel VBA?

VBA debug.print est l'instruction utile pour afficher plus de nombre de variables à la fois dans la fenêtre immédiate. C'est la meilleure approche alternative pour montrer la sortie.

Par exemple,

Debug.print count, sum, average, standard deviation

Comme indiqué dans l'exemple, toutes les variables sont séparées par des virgules. Cette instruction est capable de transférer la sortie vers la fenêtre immédiate même dans le cas où une fenêtre n'est pas ouverte. Il n'arrête pas d'exécuter le code comme dans Msgbox. Cette flexibilité prend en charge la surveillance continue des modifications de la sortie par rapport aux modifications du code.

Le nombre de variables, la somme, la moyenne et l'écart type sont affichés sur la même ligne avec un espace égal entre eux. Si la fenêtre immédiate n'est pas ouverte, suivez les étapes suivantes pour voir la sortie.

Étapes pour ouvrir la fenêtre immédiate et voir la sortie

  • Appuyez sur Ctrl + G ou cliquez sur le menu «Affichage» dans l'éditeur VBA.
  • Choisissez l'option «Fenêtre immédiate».
  • Placez le curseur dans la fenêtre et exécutez à nouveau le code.
  • Observez la sortie dans la fenêtre.

Exemples de débogage Excel VBA.

Voici les exemples illustrant l'utilisation de l'impression de débogage dans Excel VBA.

Vous pouvez télécharger ce modèle Excel d'impression de débogage VBA ici - Modèle Excel d'impression de débogage VBA

Exemple # 1 - Affichage des valeurs des variables

Tout d'abord, allez dans l'onglet Développeur, cliquez sur Macros et créez une macro pour écrire le code dans le VBA et y ajouter un nom.

Après avoir ajouté le nom, cliquez sur créer. Cela ouvre l'éditeur VBA.

Développez un petit programme comme indiqué sur la figure.

Code:

 Sub Variables () Dim X As Integer Dim Y As String Dim Z As Double X = 5 Y = "John" Z = 105.632 Debug.Print X Debug.Print Y Debug.Print Z End Sub 

Comme le montre la capture d'écran, trois dimensions ou variables sont réduites en X, Y et Z en tant qu'entier, chaîne et Double respectivement. Pour imprimer ces valeurs, Debug.print est utilisé et la sortie sera affichée dans la fenêtre immédiate. Appuyez sur CTRL + G pour voir la sortie comme indiqué dans la capture d'écran.

Exécutez ce code à l'aide de la touche F5 et appuyez sur  CTRL + G pour voir la sortie dans la fenêtre exécution.

Ce programme peut être simplifié en séparant les instructions debug.print par une virgule.

Code:

 Sous-variables () Dim X As Integer Dim Y As String Dim Z As Double X = 5 Y = "John" Z = 105.632 Debug.Print X, Y, Z End Sub 

Cette instruction de débogage imprime la sortie dans la même ligne que celle illustrée dans la capture d'écran.

Exemple # 2 - Déboguer l'impression dans un fichier

Cet exemple illustre l'utilisation de l'impression de débogage VBA pour afficher la sortie dans un fichier lorsque la longueur du texte est trop élevée.

Le programme pour imprimer la sortie sur un fichier est développé comme indiqué sur la figure.

Code:

Sous DebugPrintToFile () Dim s As String Dim num As Integer num = FreeFile () Open "D: \ Articles \ Excel \ test.txt" Pour la sortie As #num s = "Hello, world!" Debug.Print s 'écrit dans la fenêtre immédiate Print #num, s' écrit la sortie dans le fichier Close #num End Sub

Dans ce programme, deux variables appelées S et Num sont considérées respectivement comme une chaîne et un entier. L'instruction open est utilisée pour créer un fichier texte avec le nom test. Une chaîne appelée «Hello World» est déclarée dans la variable S.

Lorsque vous exécutez le code VBA manuellement ou à l'aide de la touche F5, la sortie est écrite dans la fenêtre immédiate et le fichier à la fois est affiché dans le dossier.

La sortie vers un fichier est indiquée dans la figure ci-dessous.

L'impression de la sortie vers un fichier est utile lorsqu'un texte long est présenté.

Exemple # 3 - Affichage de la factorielle d'un nombre dans la fenêtre d'exécution

Cet exemple illustre l'utilisation de l'instruction debug.print pour afficher la factorielle d'un nombre.

Code:

 Public Sub Fact () Dim Count As Integer Dim number As Integer Dim Fact As Integer number = 5 Fact = 1 For Count = 1 To number Fact = Fact * Count Next Count Debug.Print Fact End Sub 

Pour déterminer la factorielle, trois variables sont prises en compte, y compris le nombre, le nombre et le fait. La boucle For est prise pour répéter la multiplication de la valeur de fait avec le nombre pour déterminer la factorielle du nombre.

Ici, l'instruction debug.print est utilisée en dehors de la boucle «for» pour afficher la valeur une fois la boucle terminée. La sortie est déterminée comme.

If we use debug.print statement in inside “for” loop, the fact-value is displayed for every recurring time as shown in the figure.

Code:

 Public Sub Fact() Dim Count As Integer Dim number As Integer Dim Fact As Integer number = 5 Fact = 1 For Count = 1 To number Fact = Fact * Count Debug.Print Fact Next Count End Sub 

Run the code by pressing F5 key and see the output in the immediate window. In this situation, we should consider the last value as the factorial of the given number.

Example #4 – Printing the Full name of the Active Workbook

This example explains how to print the current workbook name into the immediate window

The program is developed as shown in the figure.

Code:

 Sub Activework() Dim count As Long For count = 1 To Workbooks.count Debug.Print Workbooks(count).FullName Next count Debug.Print count End Sub 

Here ‘count’ is the variable taken to count the number of active workbooks and to display the full name of the active workbook. The full name and number of active workbooks are displayed as shown in the figure.

The path of the workbook in the drives is accurately displayed by using the VBA debug.print statement.

Things to Remember

  • The main issue with the debug .print is no text wrapping option for long strings in the immediate window
  • The immediate window should be brought to top see the output in the user interface
  • It is impossible to wrap the long text displayed in the Immediate Window. In this situation, the output needs to be displayed to a file stored in the drive.