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 bằng API C#
- Trích xuất Macro VBA từ Sổ làm việc Excel
- Thêm Macro VBA vào Sổ làm việc Excel
- Sửa đổi Macro VBA trong Sổ làm việc Excel
- Nhận giấy phép miễn phí
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.
- Tạo một đối tượng thuộc lớp Workbook để tải tệp Excel.
- Truy cập từng mô-đun VBA từ bộ sưu tập Workbook.VbaProject.Modules vào đối tượng VbaModule.
- Truy xuất mã từ mỗi mô-đun bằng thuộc tính VbaModule.Codes.
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.
- Tạo một tệp Excel mới hoặc tải một tệp hiện có bằng lớp Workbook.
- Thêm một bảng tính mới hoặc lấy bảng tính hiện có bằng lớp Worksheet.
- Thêm mô-đun VBA mới bằng phương thức Workbook.VbaProject.Modules.Add(Worksheet) và lấy ID của mô-đun.
- Truy cập mô-đun VBA từ bộ sưu tập Workbook.VbaProject.Modules[idx] vào đối tượng VbaModule.
- Thêm tên của mô-đun bằng thuộc tính VbaModule.Name.
- Thêm mã vào mô-đun bằng thuộc tính VbaModule.Codes.
- Lưu sổ làm việc bằng phương thức Workbook.Save(String, SaveFormat.Xlsm).
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.
- Sử dụng lớp Workbook để tải tệp Excel.
- Truy cập các mô-đun VBA từ bộ sưu tập Workbook.VbaProject.Modules vào đối tượng VbaModule.
- Truy xuất mã từ mô-đun mong muốn bằng thuộc tính VbaModule.Codes.
- Thay thế mã và lưu tệp Excel bằng phương pháp Workbook.Save(String).
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Í.