Управление VBA кодами книги Excel с поддержкой макросов
Добавить модуль VBA в Node.js
Следующий пример создает новую книгу и добавляет новый модуль VBA и макрос-код, сохраняет результат в формате XLSM. После открытия файла XLSM в Microsoft Excel и выбора меню Разработчик > Visual Basic, вы увидите модуль с именем “TestModule” и внутри его — следующий макрос-код.
Sub ShowMessage() {
MsgBox "Welcome to Aspose!"
}
Вот пример кода для генерации файла XLSM с модулем VBA и макросом.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Create new workbook
const workbook = new AsposeCells.Workbook();
// Access first worksheet
const worksheet = workbook.getWorksheets().get(0);
// Add VBA Module
const idx = workbook.getVbaProject().getModules().add(worksheet);
// Access the VBA Module, set its name and codes
const module = workbook.getVbaProject().getModules().get(idx);
module.setName("TestModule");
module.setCodes("Sub ShowMessage()" + "\r\n" +
" MsgBox \"Welcome to Aspose!\"" + "\r\n" +
"End Sub");
// Save the workbook
workbook.save(path.join(dataDir, "output_out.xlsm"), AsposeCells.SaveFormat.Xlsm);
Изменение VBA или макроса в Node.js
Вы можете изменять VBA или макрос-код с помощью Aspose.Cells for Node.js via C++. Aspose.Cells добавила следующий модуль и классы для чтения и изменения VBA-проекта в файле Excel.
- Aspose.Cells.Vba
- VbaProject
- VbaModuleCollection
- VbaModule
Эта статья покажет вам, как изменить код VBA или макроса в исходном файле Excel с помощью Aspose.Cells.
Следующий пример загружает исходный файл Excel, в котором содержится следующий VBA или макрос-код
Sub Button1_Click() {
MsgBox "This is test message."
}
После выполнения приведенного выше образца кода Aspose.Cells код VBA или макрос будет изменен таким образом.
Sub Button1_Click() {
MsgBox "This is Aspose.Cells message."
}
Вы можете загрузить исходный файл Excel и файл Excel для вывода по указанным ссылкам.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Create workbook object from source Excel file
const workbook = new AsposeCells.Workbook(path.join(dataDir, "sample.xlsm"));
// Change the VBA Module Code
const modules = workbook.getVbaProject().getModules();
const moduleCount = modules.getCount();
for (let i = 0; i < moduleCount; i++) {
const module = modules.get(i);
const code = module.getCodes();
if (code.includes("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(path.join(dataDir, "output_out.xlsm"));
Продвинутые темы
- Добавить ссылку на библиотеку в проект VBA в книге
- Назначить макрос элементу управления формы
- Проверить, действителен ли цифровая подпись кода VBA
- Проверить, подписан ли код VBA
- Проверить, подписан ли проект VBA в книге Excel
- Проверить, защищен ли и заблокирован для просмотра проект VBA
- Копирование макроса VBA UserForm DesignerStorage из шаблона в целевую книгу
- Цифрово подписать проект кода VBA c сертификатом
- Экспортировать сертификат VBA в файл или поток
- Фильтрация проекта VBA при загрузке книги
- Узнать, защищен ли проект VBA
- Защитить паролем проект VBA книги Excel