Gérer les codes VBA du classeur Excel compatible avec les macros.

Ajouter un module VBA dans C#

L’exemple de code suivant crée un nouveau classeur et ajoute un nouveau module VBA et un code de macro et enregistre la sortie au format XLSM. Une fois, vous ouvrirez le fichier de sortie XLSM dans Microsoft Excel et cliquez sur leDéveloppeur > Visual Basic commandes de menu, vous verrez un module nommé “TestModule” et à l’intérieur, vous verrez le code macro suivant.

 Sub ShowMessage()

    MsgBox "Welcome to Aspose!"

End Sub

Voici l’exemple de code pour générer le fichier de sortie XLSM avec le module VBA et le code macro.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create new workbook
Workbook workbook = new Workbook();
// Access first worksheet
Worksheet worksheet = workbook.Worksheets[0];
// Add VBA Module
int idx = workbook.VbaProject.Modules.Add(worksheet);
// Access the VBA Module, set its name and 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";
// Save the workbook
workbook.Save(dataDir + "output_out.xlsm", SaveFormat.Xlsm);

Modifier VBA ou Macro dans C#

L’exemple de code suivant charge le fichier Excel source qui contient un code VBA ou Macro suivant à l’intérieur

 Sub Button1_Click()

    MsgBox "This is test message."

End Sub

Après l’exécution de l’exemple de code Aspose.Cells, le code VBA ou Macro sera modifié comme ceci

 Sub Button1_Click()

    MsgBox "This is Aspose.Cells message."

End Sub

Vous pouvez télécharger lefichier Excel source et lefichier Excel de sortie à partir des liens donnés.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create workbook object from source Excel file
Workbook workbook = new Workbook(dataDir + "sample.xlsm");
// Change the VBA Module Code
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
// Replace the original message with the modified message
if (code.Contains("This is test message."))
{
code = code.Replace("This is test message.", "This is Aspose.Cells message.");
module.Codes = code;
}
}
// Save the output Excel file
workbook.Save(dataDir + "output_out.xlsm");

Sujets avancés