Gestionar códigos VBA del libro de trabajo habilitado para macros de Excel
Agregar un módulo VBA en Node.js
El siguiente código de ejemplo crea un nuevo libro de trabajo y añade un nuevo módulo VBA y Código Macro y guarda la salida en formato XLSM. Una vez que abras el archivo XLSM en Microsoft Excel y hagas clic en Desarrollador > Visual Basic, verás un módulo llamado “TestModule” y en su interior, el siguiente código macro.
Sub ShowMessage() {
MsgBox "Welcome to Aspose!"
}
Aquí tienes el código de ejemplo para generar el archivo XLSM de salida con módulo VBA y código macro.
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);
Modificar VBA o Macro en Node.js
Puedes modificar el código VBA o Macro usando Aspose.Cells for Node.js via C++. Aspose.Cells ha añadido el siguiente módulo y clases para leer y modificar el proyecto VBA en el archivo de Excel.
- Aspose.Cells.Vba
- VbaProject
- VbaModuleCollection
- VbaModule
Este artículo te mostrará cómo cambiar el código de VBA o macro dentro del archivo de Excel fuente utilizando Aspose.Cells.
El siguiente código de ejemplo carga el archivo de Excel fuente que contiene el siguiente código VBA o Macro:
Sub Button1_Click() {
MsgBox "This is test message."
}
Después de la ejecución del código de ejemplo de Aspose.Cells, el código de VBA o macro será modificado de la siguiente manera
Sub Button1_Click() {
MsgBox "This is Aspose.Cells message."
}
Puedes descargar el archivo de Excel fuente y el archivo de Excel de salida desde los enlaces proporcionados.
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"));
Temas avanzados
- Agregar una referencia de librería al proyecto de VBA en el libro de trabajo
- Asignar Macro a un control de formulario
- Comprobar si la firma digital del código VBA es válida
- Comprobar si el código VBA está firmado
- Comprobar si el proyecto de VBA en un libro de Excel está firmado
- Comprobar si el proyecto de VBA está protegido y bloqueado para ver
- Copiar el diseñador de almacenamiento de formularios de usuario Macro de VBA de la plantilla al libro de Excel de destino
- Firmar digitalmente un proyecto de código VBA con certificado
- Exportar certificado de VBA a archivo o flujo de datos
- Filtrar proyecto de VBA al cargar un libro de Excel
- Descubrir si el proyecto de VBA está protegido
- Proteger con contraseña el proyecto de VBA del libro de Excel