Travailler avec la macro VBA en C#

VBA (Visual Basic for Applications) est un langage de programmation utilisé dans les fichiers MS Excel afin d’automatiser les opérations liées aux feuilles de calcul. Les macros VBA sont utilisées pour écrire des fonctions définies par l’utilisateur qui vous permettent d’accélérer les tâches que vous devez effectuer manuellement. Dans cet article, vous apprendrez à utiliser par programme les macros VBA dans les fichiers MS Excel. À la fin de cet article, vous serez en mesure d’extraire, d’ajouter et de modifier des macros VBA dans des classeurs Excel à l’aide de C#.

Travailler avec des macros VBA dans des fichiers Excel - API C#

Aspose.Cells for .NET est une bibliothèque de classes C# conçue pour automatiser la manipulation des feuilles de calcul à partir des applications .NET. L’API fournit un large éventail de fonctionnalités qui vous permettent de créer, de modifier et de convertir des classeurs MS Excel. De plus, l’API permet de travailler avec des macros VBA de manière transparente. Aspose.Cells for .NET est disponible pour téléchargement en tant que fichier DLL ainsi qu’hébergé sur NuGet.

PM> Install-Package Aspose.Cells

Extraire les macros VBA d’un fichier Excel à l’aide de C#

Commençons par extraire les macros VBA d’un classeur Excel existant. Voici les étapes pour effectuer cette opération.

L’exemple de code suivant montre comment extraire une macro VBA d’un classeur Excel à l’aide de C#.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Créer un objet de classeur à partir du fichier Excel source
Workbook workbook = new Workbook("sample.xlsm");

// Extraire le code de chaque module VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

Ajouter des macros VBA à un fichier Excel à l’aide de C#

Aspose.Cells for .NET vous permet également d’ajouter des macros VBA à des fichiers Excel existants ou nouveaux. Cela peut être fait en suivant les étapes ci-dessous.

L’exemple de code suivant montre comment ajouter une macro VBA au classeur Excel à l’aide de C#.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Créer un nouveau classeur
Workbook workbook = new Workbook();

// Accéder à la première feuille de calcul
Worksheet worksheet = workbook.Worksheets[0];

// Ajouter un module VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);

// Accédez au module VBA, définissez son nom et ses codes
Aspose.Cells.Vba.VbaModule module = workbook.VbaProject.Modules[idx];
module.Name = "TestModule";

module.Codes = "Sub ShowMessage()" + "\r\n" +
"    MsgBox \"Welcome to Aspose!\"" + "\r\n" +
"End Sub";

// Enregistrer le classeur
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

Modifier la macro VBA dans un fichier Excel à l’aide de C#

Vous pouvez également modifier les macros VBA existantes dans un fichier Excel en procédant comme suit.

L’exemple de code suivant montre comment modifier une macro VBA dans un fichier Excel à l’aide de C#.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Créer un objet de classeur à partir du fichier Excel source
Workbook workbook = new Workbook("sample.xlsm");

// Modifier le code du module VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // Remplacer le message d'origine par le message modifié
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// Enregistrez le fichier Excel de sortie
workbook.Save("output_out.xlsm");

Obtenez une licence gratuite

Vous pouvez utiliser ou évaluer gratuitement Aspose.Cells for .NET en utilisant une licence temporaire valable 30 jours. Obtenez le vôtre maintenant.

Conclusion

Les macros VBA dans les fichiers MS Excel sont utilisées pour automatiser divers types de tâches liées aux feuilles de calcul. Afin de gérer les macros VBA par programme, cet article a expliqué comment extraire, ajouter et modifier du code dans les modules VBA à l’aide de C#. Vous pouvez en savoir plus sur l’API de manipulation de feuille de calcul C# à l’aide de documentation.

Voir également

Conseil : vous pouvez consulter Aspose application Web GRATUITE de suppression de macros.