Gérer les codes VBA du classeur activé par macro Excel.

Ajouter un module VBA en Python

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

 Sub ShowMessage()

    MsgBox "Welcome to Aspose!"

End Sub

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

from aspose.cells import SaveFormat, Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create new workbook
workbook = Workbook()
# Access first worksheet
worksheet = workbook.worksheets[0]
# Add VBA Module
idx = workbook.vba_project.modules.add(worksheet)
# Access the VBA Module, set its name and codes
module = workbook.vba_project.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 le VBA ou la macro en Python

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

 Sub Button1_Click()

    MsgBox "This is test message."

End Sub

Après l’exécution du code d’échantillon Aspose.Cells pour Python via .NET, 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 le fichier Excel source et le fichier Excel de sortie à partir des liens donnés.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create workbook object from source Excel file
workbook = Workbook(dataDir + "sample.xlsm")
# Change the VBA Module Code
for module in workbook.vba_project.modules:
code = module.codes
# Replace the original message with the modified 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