Làm việc với VBA Macro trong C#

VBA(Visual Basic for Applications) là ngôn ngữ lập trình được sử dụng trong các tệp MS Excel để tự động hóa các hoạt động liên quan đến bảng tính. Các macro VBA được sử dụng để viết các hàm do người dùng xác định cho phép bạn tăng tốc các tác vụ mà bạn phải thực hiện thủ công. Trong bài viết này, bạn sẽ học cách làm việc với các macro VBA trong các tệp MS Excel theo cách lập trình. Đến cuối bài viết này, bạn sẽ có thể trích xuất, thêm và sửa đổi macro VBA trong sổ làm việc Excel bằng C#.

Làm việc với Macro VBA trong tệp Excel - API C#

Aspose.Cells for .NET là một thư viện lớp C# được thiết kế để tự động hóa thao tác bảng tính từ bên trong các ứng dụng .NET. API cung cấp nhiều tính năng cho phép bạn tạo, sửa đổi và chuyển đổi sổ làm việc MS Excel. Ngoài ra, API giúp bạn có thể làm việc liền mạch với các macro VBA. Aspose.Cells for .NET có sẵn để tải xuống dưới dạng tệp DLL cũng như được lưu trữ trên NuGet.

PM> Install-Package Aspose.Cells

Trích xuất Macro VBA từ Tệp Excel bằng C#

Hãy bắt đầu bằng cách trích xuất các macro VBA từ sổ làm việc Excel hiện có. Sau đây là các bước để thực hiện thao tác này.

Mẫu mã sau đây cho biết cách trích xuất macro VBA từ sổ làm việc Excel bằng C#.

// Để biết các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Tạo đối tượng sổ làm việc từ tệp Excel nguồn
Workbook workbook = new Workbook("sample.xlsm");

// Trích xuất mã từ mỗi mô-đun VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

Thêm Macro VBA vào Tệp Excel bằng C#

Aspose.Cells for .NET cũng cho phép bạn thêm macro VBA vào các tệp Excel hiện có hoặc mới. Điều này có thể được thực hiện bằng cách làm theo các bước dưới đây.

Mẫu mã sau đây cho biết cách thêm macro VBA vào sổ làm việc Excel bằng C#.

// Để biết các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Tạo sổ làm việc mới
Workbook workbook = new Workbook();

// Truy cập trang tính đầu tiên
Worksheet worksheet = workbook.Worksheets[0];

// Thêm mô-đun VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);

// Truy cập Mô-đun VBA, đặt tên và mã của nó
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";

// Lưu sổ làm việc
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

Sửa đổi Macro VBA trong Tệp Excel bằng C#

Bạn cũng có thể sửa đổi các macro VBA hiện có trong tệp Excel bằng các bước sau.

Mẫu mã sau đây cho biết cách sửa đổi macro VBA trong tệp Excel bằng C#.

// Để biết các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Tạo đối tượng sổ làm việc từ tệp Excel nguồn
Workbook workbook = new Workbook("sample.xlsm");

// Thay đổi mã mô-đun VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // Thay thế tin nhắn gốc bằng tin nhắn đã sửa đổi
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// Lưu tệp Excel đầu ra
workbook.Save("output_out.xlsm");

Nhận giấy phép miễn phí

Bạn có thể sử dụng hoặc đánh giá Aspose.Cells for .NET miễn phí bằng cách sử dụng giấy phép tạm thời có hiệu lực trong 30 ngày. Nhận của bạn ngay bây giờ.

Sự kết luận

Macro VBA trong tệp MS Excel được sử dụng để tự động hóa nhiều loại tác vụ liên quan đến bảng tính. Để xử lý các macro VBA theo chương trình, bài viết này trình bày cách trích xuất, thêm và sửa đổi mã trong các mô-đun VBA bằng C#. Bạn có thể khám phá thêm về API thao tác bảng tính C# bằng cách sử dụng tài liệu.

Xem thêm

Mẹo: Bạn có thể muốn xem Aspose Ứng dụng web xóa macro MIỄN PHÍ.