Управление кодами VBA для книги Excel с поддержкой макросов.

Добавить модуль VBA в Python

В следующем образце кода создается новая книга и добавляется новый модуль VBA и код макроса, и сохраняется в формате XLSM. Когда вы откроете файл XLSM в Microsoft Excel и нажмете команды Разработчик > Визуальный Basic, вы увидите модуль под названием “TestModule” и внутри него будет следующий код макроса.

 Sub ShowMessage()

    MsgBox "Welcome to Aspose!"

End Sub

Вот образец кода для создания файла XLSM с модулем VBA и кодом макроса.

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)

Редактирование VBA или Макроса в Python

Приведенный ниже образец кода загружает исходный файл Excel с встроенным VBA-кодом или макросом.

 Sub Button1_Click()

    MsgBox "This is test message."

End Sub

После выполнения примера кода Aspose.Cells для Python via .NET, VBA или макрос код будет изменен следующим образом

 Sub Button1_Click()

    MsgBox "This is Aspose.Cells message."

End Sub

Вы можете загрузить исходный файл Excel и файл Excel для вывода по указанным ссылкам.

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")

Продвинутые темы