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 med C# API
- Extrahera VBA-makron från en Excel-arbetsbok
- Lägg till VBA-makron till en Excel-arbetsbok
- Ändra VBA-makro i en Excel-arbetsbok
- Skaffa en gratis licens
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.
- Skapa ett objekt av klassen Arbetsbok för att ladda Excel-filen.
- Få åtkomst till varje VBA-modul från Workbook.VbaProject.Modules-samlingen till VbaModule-objektet.
- Hämta kod från varje modul med VbaModule.Codes egenskapen.
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.
- Skapa en ny Excel-fil eller ladda en befintlig med klassen Arbetsbok.
- Lägg till ett nytt kalkylblad eller skaffa det befintliga med klassen Worksheet.
- Lägg till en ny VBA-modul med metoden Workbook.VbaProject.Modules.Add(Worksheet) och få modulens ID.
- Öppna VBA-modulen från Workbook.VbaProject.Modules[idx]-samlingen till VbaModule-objektet.
- Lägg till namnet på modulen med egenskapen VbaModule.Name.
- Lägg till kod till modulen med egenskapen VbaModule.Codes.
- Spara arbetsboken med metoden Workbook.Save(String, SaveFormat.Xlsm).
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.
- Använd klassen Arbetsbok för att ladda Excel-filen.
- Gå till VBA-modulerna från Workbook.VbaProject.Modules-samlingen till VbaModule-objektet.
- Hämta kod från den önskade modulen med VbaModule.Codes egenskapen.
- Byt ut koden och spara Excel-filen med metoden Workbook.Save(String).
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.