
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 à l’aide de l’API C#
- Extraire les macros VBA d’un classeur Excel
- Ajouter des macros VBA à un classeur Excel
- Modifier la macro VBA dans un classeur Excel
- Obtenez une licence gratuite
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.
- Créez un objet de la classe Workbook pour charger le fichier Excel.
- Accédez à chaque module VBA de la collection Workbook.VbaProject.Modules dans l’objet VbaModule.
- Récupérez le code de chaque module à l’aide de la propriété VbaModule.Codes.
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.
- Créez un nouveau fichier Excel ou chargez-en un existant à l’aide de la classe Workbook.
- Ajoutez une nouvelle feuille de calcul ou récupérez celle qui existe à l’aide de la classe Worksheet.
- Ajoutez un nouveau module VBA à l’aide de la méthode Workbook.VbaProject.Modules.Add(Worksheet) et obtenez l’ID du module.
- Accédez au module VBA à partir de la collection Workbook.VbaProject.Modules[idx] dans l’objet VbaModule.
- Ajoutez le nom du module à l’aide de la propriété VbaModule.Name.
- Ajoutez du code au module à l’aide de la propriété VbaModule.Codes.
- Enregistrez le classeur à l’aide de la méthode Workbook.Save(String, SaveFormat.Xlsm).
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.
- Utilisez la classe Workbook pour charger le fichier Excel.
- Accédez aux modules VBA de la collection Workbook.VbaProject.Modules dans l’objet VbaModule.
- Récupérez le code du module souhaité à l’aide de la propriété VbaModule.Codes.
- Remplacez le code et enregistrez le fichier Excel à l’aide de la méthode Workbook.Save(String).
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.