Hantera VBA-koder för Excel Macro-Enabled arbetsbok.

Lägg till en VBA-modul i C#

Följande exempelkod skapar en ny arbetsbok och lägger till en ny VBA-modul och makrokod och sparar utdata i formatet XLSM. En gång öppnar du utdatafilen XLSM i Microsoft Excel och klickar påUtvecklare > Visual Basic menykommandon kommer du att se en modul som heter “TestModule” och inuti den kommer du att se följande makrokod.

 Sub ShowMessage()

    MsgBox "Welcome to Aspose!"

End Sub

Här är exempelkoden för att generera utdatafilen XLSM med VBA-modul och makrokod.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create new workbook
Workbook workbook = new Workbook();
// Access first worksheet
Worksheet worksheet = workbook.Worksheets[0];
// Add VBA Module
int idx = workbook.VbaProject.Modules.Add(worksheet);
// Access the VBA Module, set its name and codes
Aspose.Cells.Vba.VbaModule module = workbook.VbaProject.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);

Ändra VBA eller makro i C#

Följande exempelkod laddar källfilen i Excel som har en följande VBA- eller makrokod inuti

 Sub Button1_Click()

    MsgBox "This is test message."

End Sub

Efter exekvering av Aspose.Cells exempelkod kommer VBA- eller makrokoden att ändras så här

 Sub Button1_Click()

    MsgBox "This is Aspose.Cells message."

End Sub

Du kan ladda nerkäll Excel-fil och denutdata Excel-fil från de angivna länkarna.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create workbook object from source Excel file
Workbook workbook = new Workbook(dataDir + "sample.xlsm");
// Change the VBA Module Code
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
// 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.Codes = code;
}
}
// Save the output Excel file
workbook.Save(dataDir + "output_out.xlsm");

Förhandsämnen