Pracuj z makrami VBA w C#

VBA (Visual Basic for Applications) to język programowania używany w plikach MS Excel w celu automatyzacji operacji związanych z arkuszami kalkulacyjnymi. Makra VBA służą do pisania funkcji zdefiniowanych przez użytkownika, które pozwalają przyspieszyć zadania, które musisz wykonać ręcznie. W tym artykule dowiesz się, jak programowo pracować z makrami VBA w plikach MS Excel. Pod koniec tego artykułu będziesz mógł wyodrębniać, dodawać i modyfikować makra VBA w skoroszytach programu Excel przy użyciu języka C#.

Pracuj z makrami VBA w plikach Excela — C# API

Aspose.Cells for .NET to biblioteka klas języka C#, która została zaprojektowana w celu automatyzacji manipulowania arkuszami kalkulacyjnymi z poziomu aplikacji .NET. Interfejs API zapewnia szeroki zakres funkcji, które umożliwiają tworzenie, modyfikowanie i konwertowanie skoroszytów programu MS Excel. Ponadto API umożliwia bezproblemową pracę z makrami VBA. Aspose.Cells for .NET jest dostępny do pobrania jako plik DLL, a także hostowany na NuGet.

PM> Install-Package Aspose.Cells

Wyodrębnij makra VBA z pliku Excela za pomocą C#

Zacznijmy od wyodrębnienia makr VBA z istniejącego skoroszytu programu Excel. Poniżej przedstawiono kroki, aby wykonać tę operację.

Poniższy przykładowy kod pokazuje, jak wyodrębnić makro języka VBA ze skoroszytu programu Excel przy użyciu języka C#.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Utwórz obiekt skoroszytu ze źródłowego pliku Excel
Workbook workbook = new Workbook("sample.xlsm");

// Wyodrębnij kod z każdego modułu VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

Dodaj makra VBA do pliku Excela za pomocą C#

Aspose.Cells for .NET umożliwia także dodawanie makr VBA do istniejących lub nowych plików Excel. Można to zrobić, wykonując poniższe kroki.

Poniższy przykładowy kod pokazuje, jak dodać makro języka VBA do skoroszytu programu Excel przy użyciu języka C#.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Utwórz nowy skoroszyt
Workbook workbook = new Workbook();

// Uzyskaj dostęp do pierwszego arkusza roboczego
Worksheet worksheet = workbook.Worksheets[0];

// Dodaj moduł VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);

// Uzyskaj dostęp do modułu VBA, ustaw jego nazwę i kody
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";

// Zapisz skoroszyt
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

Zmodyfikuj makro VBA w pliku Excela za pomocą C#

Możesz także zmodyfikować istniejące makra VBA w pliku Excel, wykonując następujące czynności.

Poniższy przykładowy kod pokazuje, jak zmodyfikować makro języka VBA w pliku programu Excel przy użyciu języka C#.

// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Utwórz obiekt skoroszytu ze źródłowego pliku Excel
Workbook workbook = new Workbook("sample.xlsm");

// Zmień kod modułu VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // Zastąp oryginalną wiadomość zmodyfikowaną wiadomością
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// Zapisz wyjściowy plik programu Excel
workbook.Save("output_out.xlsm");

Uzyskaj bezpłatną licencję

Możesz używać lub testować Aspose.Cells for .NET za darmo, korzystając z tymczasowej licencji ważnej przez 30 dni. Odbierz teraz.

Wniosek

Makra VBA w plikach MS Excel służą do automatyzacji różnego rodzaju zadań związanych z arkuszami kalkulacyjnymi. Aby programowo obsługiwać makra języka VBA, w tym artykule omówiono sposób wyodrębniania, dodawania i modyfikowania kodu w modułach języka VBA przy użyciu języka C#. Więcej informacji na temat interfejsu API do manipulowania arkuszami kalkulacyjnymi w języku C# można znaleźć w dokumentacji.

Zobacz też

Wskazówka: możesz sprawdzić Aspose BEZPŁATNA aplikacja internetowa do usuwania makr.