
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 przy użyciu C# API
- Wyodrębnij makra VBA ze skoroszytu programu Excel
- Dodaj makra VBA do skoroszytu programu Excel
- Zmodyfikuj makro VBA w skoroszycie programu Excel
- Uzyskaj bezpłatną licencję
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ę.
- Utwórz obiekt klasy Workbook, aby załadować plik Excel.
- Uzyskaj dostęp do każdego modułu VBA z kolekcji Workbook.VbaProject.Modules do obiektu VbaModule.
- Pobierz kod z każdego modułu za pomocą właściwości VbaModule.Codes.
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.
- Utwórz nowy plik programu Excel lub załaduj istniejący, używając klasy Workbook.
- Dodaj nowy arkusz roboczy lub pobierz istniejący za pomocą klasy Worksheet.
- Dodaj nowy moduł VBA metodą Workbook.VbaProject.Modules.Add(Worksheet) i pobierz identyfikator modułu.
- Uzyskaj dostęp do modułu VBA z kolekcji Workbook.VbaProject.Modules[idx] do obiektu VbaModule.
- Dodaj nazwę modułu za pomocą właściwości VbaModule.Name.
- Dodaj kod do modułu za pomocą właściwości VbaModule.Codes.
- Zapisz skoroszyt przy użyciu metody Workbook.Save(String, SaveFormat.Xlsm).
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.
- Użyj klasy Workbook, aby załadować plik Excel.
- Uzyskaj dostęp do modułów VBA z kolekcji Workbook.VbaProject.Modules do obiektu VbaModule.
- Pobierz kod z żądanego modułu za pomocą właściwości VbaModule.Codes.
- Zastąp kod i zapisz plik Excela metodą Workbook.Save(String).
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.