Изменение кода VBA или макроса с помощью Aspose.Cells
Contents
[
Hide
]
Вы можете изменить код VBA или макроса, используя Aspose.Cells. Aspose.Cells добавил следующие классы для чтения и изменения проекта VBA в файле Excel.
- VbaProject
- ВбаМодулеКоллекция
- VbaModule
Эта статья покажет вам, как изменить код VBA или макроса внутри исходного файла Excel, используя Aspose.Cells.
Пример
Следующий пример кода загружает исходный файл Excel, внутри которого находится следующий код VBA или макроса.
Sub Button1_Click()
MsgBox "This is test message."
End Sub
После выполнения образца кода Aspose.Cells код VBA или макроса будет изменен следующим образом.
Sub Button1_Click()
MsgBox "This is Aspose.Cells message."
End Sub
Вы можете скачатьисходный файл Excel ивыходной файл Excel по указанным ссылкам.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
String dataDir = Utils.getDataDir(ModifyVBAorMacroCode.class); | |
// Create workbook object from source Excel file | |
Workbook workbook = new Workbook(dataDir + "sample.xlsm"); | |
// Change the VBA Module Code | |
VbaModuleCollection modules = workbook.getVbaProject().getModules(); | |
for (int i = 0; i < modules.getCount(); i++) { | |
VbaModule module = modules.get(i); | |
String code = module.getCodes(); | |
// 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.setCodes(code); | |
} | |
} | |
// Save the output Excel file | |
workbook.save(dataDir + "output.xlsm"); |