管理Excel宏启用的工作簿的VBA代码。
在Python中添加VBA模块
以下示例代码创建一个新工作簿,并添加一个新的VBA模块和宏代码,将输出保存为XLSM格式。一旦您打开输出的XLSM文件并单击“开发人员> Visual Basic”菜单命令,您将看到一个名为“TestModule”的模块,并在其中看到以下宏代码。
Sub ShowMessage()
MsgBox "Welcome to Aspose!"
End Sub
以下是生成带有VBA模块和宏代码的输出XLSM文件的示例代码。
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) |
在Python中修改VBA或宏
您可以使用Aspose.Cells for Python via .NET修改VBA或宏代码。Aspose.Cells for Python via .NET 增加了读取和修改Excel文件中的VBA项目的命名空间和类。
- Aspose.Cells.Vba
- VbaProject
- VbaModuleCollection
- VbaModule
本文将向您展示如何使用Aspose.Cells for Python via .NET更改源Excel文件中的VBA或宏代码。
以下示例代码加载带有以下VBA或宏代码的源Excel文件
Sub Button1_Click()
MsgBox "This is test message."
End Sub
在执行Aspose.Cells for Python via .NET示例代码后,VBA或宏代码将被修改为如下内容
Sub Button1_Click()
MsgBox "This is Aspose.Cells message."
End Sub
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") |