Arbeta med VBA Macro i C#

VBA(Visual Basic for Applications) är ett programmeringsspråk som används i MS Excel-filer för att automatisera kalkylbladsrelaterade operationer. VBA-makron används för att skriva användardefinierade funktioner som låter dig snabba upp de uppgifter du måste utföra manuellt. I den här artikeln kommer du att lära dig hur du arbetar med VBA-makron i MS Excel-filer programmatiskt. I slutet av den här artikeln kommer du att kunna extrahera, lägga till och ändra VBA-makron i Excel-arbetsböcker med C#.

Arbeta med VBA-makron i Excel-filer - C# API

Aspose.Cells for .NET är ett C#-klassbibliotek som är designat för att automatisera kalkylbladsmanipulation inifrån .NET-applikationerna. API:et tillhandahåller ett brett utbud av funktioner som ger dig möjlighet att skapa, modifiera och konvertera MS Excel-arbetsböcker. Dessutom gör API:et det möjligt att arbeta med VBA-makron sömlöst. Aspose.Cells för .NET är tillgängligt för nedladdning som en DLL-fil samt värd på NuGet.

PM> Install-Package Aspose.Cells

Extrahera VBA-makron från en Excel-fil med C#

Låt oss börja med att extrahera VBA-makron från en befintlig Excel-arbetsbok. Följande är stegen för att utföra denna operation.

Följande kodexempel visar hur man extraherar VBA-makro från en Excel-arbetsbok med C#.

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Skapa arbetsboksobjekt från Excel-källfilen
Workbook workbook = new Workbook("sample.xlsm");

// Extrahera kod från varje VBA-modul
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

Lägg till VBA-makron till en Excel-fil med C#

Aspose.Cells för .NET låter dig också lägga till VBA-makron till befintliga eller nya Excel-filer. Detta kan göras genom att följa stegen nedan.

Följande kodexempel visar hur man lägger till ett VBA-makro till Excel-arbetsbok med C#.

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Skapa ny arbetsbok
Workbook workbook = new Workbook();

// Öppna första kalkylbladet
Worksheet worksheet = workbook.Worksheets[0];

// Lägg till VBA-modul
int idx = workbook.VbaProject.Modules.Add(worksheet);

// Gå till VBA-modulen, ställ in dess namn och koder
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";

// Spara arbetsboken
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

Ändra VBA-makro i en Excel-fil med C#

Du kan också ändra befintliga VBA-makron i en Excel-fil genom att använda följande steg.

Följande kodexempel visar hur man ändrar ett VBA-makro i en Excel-fil med C#.

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Skapa arbetsboksobjekt från Excel-källfilen
Workbook workbook = new Workbook("sample.xlsm");

// Ändra VBA-modulkoden
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // Ersätt det ursprungliga meddelandet med det ändrade meddelandet
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// Spara den utgående Excel-filen
workbook.Save("output_out.xlsm");

Skaffa en gratis licens

Du kan använda eller utvärdera Aspose.Cells för .NET gratis med en tillfällig licens som gäller i 30 dagar. Hämta din nu.

Slutsats

VBA-makron i MS Excel-filer används för att automatisera olika typer av uppgifter relaterade till kalkylblad. För att hantera VBA-makron programmatiskt behandlade den här artikeln hur man extraherar, lägger till och modifierar kod i VBA-moduler med C#. Du kan utforska mer om C#-kalkylarksmanipulerings-API:et med dokumentation.

Se även

Tips: Du kanske vill kolla in Aspose FREE macro removal web app.