
VBA(Visual Basic for Applications) je programovací jazyk, který se používá v souborech MS Excel za účelem automatizace operací souvisejících s tabulkami. Makra VBA se používají k psaní uživatelsky definovaných funkcí, které vám umožní urychlit úkoly, které musíte provádět ručně. V tomto článku se dozvíte, jak programově pracovat s makry VBA v souborech MS Excel. Na konci tohoto článku budete moci extrahovat, přidávat a upravovat makra VBA v sešitech aplikace Excel pomocí jazyka C#.
- Práce s makry VBA pomocí C# API
- Extrahujte makra VBA ze sešitu aplikace Excel
- Přidejte makra VBA do sešitu aplikace Excel
- Upravte makro VBA v sešitu aplikace Excel
- Získejte bezplatnou licenci
Práce s makry VBA v souborech Excel - C# API
Aspose.Cells for .NET je knihovna tříd C#, která je navržena tak, aby automatizovala manipulaci s tabulkami z aplikací .NET. Rozhraní API poskytuje širokou škálu funkcí, které vám umožňují vytvářet, upravovat a převádět sešity MS Excel. Kromě toho API umožňuje bezproblémovou práci s makry VBA. Aspose.Cells for .NET je k dispozici pro stáhnout jako soubor DLL a také je hostován na NuGet.
PM> Install-Package Aspose.Cells
Extrahujte makra VBA ze souboru aplikace Excel pomocí C#
Začněme extrahováním maker VBA z existujícího sešitu aplikace Excel. Následují kroky k provedení této operace.
- Vytvořte objekt třídy Sešit pro načtení souboru aplikace Excel.
- Přístup ke každému modulu VBA z kolekce Workbook.VbaProject.Modules do objektu VbaModule.
- Načtěte kód z každého modulu pomocí vlastnosti VbaModule.Codes.
Následující ukázka kódu ukazuje, jak extrahovat makro VBA ze sešitu aplikace Excel pomocí jazyka C#.
// Úplné příklady a datové soubory najdete na https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Vytvořte objekt sešitu ze zdrojového souboru aplikace Excel
Workbook workbook = new Workbook("sample.xlsm");
// Extrahujte kód z každého modulu VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
Console.Write(code);
}
Přidejte makra VBA do souboru aplikace Excel pomocí C#
Aspose.Cells for .NET také umožňuje přidávat makra VBA do stávajících nebo nových souborů aplikace Excel. To lze provést podle níže uvedených kroků.
- Vytvořte nový soubor Excel nebo načtěte existující pomocí třídy Sešit.
- Přidejte nový list nebo získejte stávající pomocí třídy Worksheet.
- Přidejte nový modul VBA pomocí metody Workbook.VbaProject.Modules.Add(Worksheet) a získejte ID modulu.
- Otevřete modul VBA z kolekce Workbook.VbaProject.Modules[idx] do objektu VbaModule.
- Přidejte název modulu pomocí vlastnosti VbaModule.Name.
- Přidejte kód do modulu pomocí vlastnosti VbaModule.Codes.
- Uložte sešit pomocí metody Workbook.Save(String, SaveFormat.Xlsm).
Následující ukázka kódu ukazuje, jak přidat makro VBA do sešitu aplikace Excel pomocí jazyka C#.
// Úplné příklady a datové soubory najdete na https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Vytvořit nový sešit
Workbook workbook = new Workbook();
// Přístup k prvnímu listu
Worksheet worksheet = workbook.Worksheets[0];
// Přidejte modul VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);
// Otevřete modul VBA, nastavte jeho název a kódy
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";
// Uložte sešit
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);
Úprava makra VBA v souboru aplikace Excel pomocí C#
Pomocí následujících kroků můžete také upravit existující makra jazyka VBA v souboru aplikace Excel.
- K načtení souboru Excel použijte třídu Sešit.
- Získejte přístup k modulům VBA z kolekce Workbook.VbaProject.Modules do objektu VbaModule.
- Načtěte kód z požadovaného modulu pomocí vlastnosti VbaModule.Codes.
- Nahraďte kód a uložte soubor Excel pomocí metody Workbook.Save(String).
Následující ukázka kódu ukazuje, jak upravit makro VBA v souboru aplikace Excel pomocí jazyka C#.
// Úplné příklady a datové soubory najdete na https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Vytvořte objekt sešitu ze zdrojového souboru aplikace Excel
Workbook workbook = new Workbook("sample.xlsm");
// Změňte kód modulu VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
// Nahraďte původní zprávu upravenou zprávou
if (code.Contains("This is test message."))
{
code = code.Replace("This is test message.", "This is Aspose.Cells message.");
module.Codes = code;
}
}
// Uložte výstupní soubor aplikace Excel
workbook.Save("output_out.xlsm");
Získejte bezplatnou licenci
Aspose.Cells for .NET můžete používat nebo hodnotit zdarma pomocí dočasné licence platné po dobu 30 dnů. Získejte svůj nyní.
Závěr
Makra VBA v souborech MS Excel se používají k automatizaci různých typů úloh souvisejících s tabulkami. Aby bylo možné zpracovat makra VBA programově, tento článek se zabýval tím, jak extrahovat, přidávat a upravovat kód v modulech VBA pomocí C#. Další informace o rozhraní API pro manipulaci s tabulkami C# můžete prozkoumat pomocí dokumentace.
Viz také
Tip: Možná budete chtít vyzkoušet Aspose webová aplikace pro odstranění makra ZDARMA.