Gérer les codes VBA du classeur Excel activé par macro

Ajouter un module VBA dans Node.js

Le code d’exemple suivant crée un nouveau classeur et ajoute un nouveau module VBA ainsi qu’un code macro, puis enregistre le résultat au format XLSM. Une fois que vous ouvrez le fichier XLSM dans Microsoft Excel et que vous cliquez sur les commandes du menu Developer > Visual Basic, vous verrez un module nommé “TestModule” et à l’intérieur, vous verrez le code macro suivant.

Sub ShowMessage() {
    MsgBox "Welcome to Aspose!"
}

Voici un exemple de code pour générer le fichier XLSM avec un module VBA et un code 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);

Modifier VBA ou Macro dans Node.js

Le code d’exemple suivant charge le fichier Excel source qui contient le code VBA ou Macro suivant.

Sub Button1_Click() {
    MsgBox "This is test message."
}

Après l’exécution du code d’exemple Aspose.Cells, le code VBA ou Macro sera modifié comme ceci

Sub Button1_Click() {
    MsgBox "This is Aspose.Cells message."
}

Vous pouvez télécharger le fichier Excel source et le fichier Excel de sortie à partir des liens donnés.

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

Sujets avancés