
VBA (Visual Basic for Applications) 是一種編程語言,用於 MS Excel 文件以自動執行與電子表格相關的操作。 VBA 宏用於編寫用戶定義的函數,使您可以加快必須手動執行的任務。在本文中,您將了解如何以編程方式在 MS Excel 文件中使用 VBA 宏。到本文結束時,您將能夠使用 C# 在 Excel 工作簿中提取、添加和修改 VBA 宏。
在 Excel 文件中使用 VBA 宏 - C# API
Aspose.Cells for .NET 是一個 C# 類庫,旨在從 .NET 應用程序中自動處理電子表格。 API 提供了廣泛的功能,使您能夠創建、修改和轉換 MS Excel 工作簿。此外,API 還可以無縫地使用 VBA 宏。 Aspose.Cells for .NET 可作為 DLL 文件 下載 並託管在 NuGet 上。
PM> Install-Package Aspose.Cells
使用 C# 從 Excel 文件中提取 VBA 宏
讓我們從現有 Excel 工作簿中提取 VBA 宏開始。以下是執行此操作的步驟。
- 創建 Workbook 類的對像以加載 Excel 文件。
- 將 Workbook.VbaProject.Modules 集合中的每個 VBA 模塊訪問到 VbaModule 對像中。
- 使用 VbaModule.Codes 屬性從每個模塊中檢索代碼。
以下代碼示例顯示如何使用 C# 從 Excel 工作簿中提取 VBA 宏。
// 如需完整示例和數據文件,請訪問 https://github.com/aspose-cells/Aspose.Cells-for-.NET
// 從源 Excel 文件創建工作簿對象
Workbook workbook = new Workbook("sample.xlsm");
// 從每個 VBA 模塊中提取代碼
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
Console.Write(code);
}
使用 C# 將 VBA 宏添加到 Excel 文件
Aspose.Cells for .NET 還允許您將 VBA 宏添加到現有或新的 Excel 文件中。這可以通過以下步驟完成。
- 使用 Workbook 類創建一個新的 Excel 文件或加載現有文件。
- 使用 Worksheet 類添加新工作表或獲取現有工作表。
- 使用 Workbook.VbaProject.Modules.Add(Worksheet) 方法添加新的 VBA 模塊並獲取模塊的 ID。
- 從 Workbook.VbaProject.Modules[idx] 集合訪問 VBA 模塊到 VbaModule 對象。
- 使用 VbaModule.Name 屬性添加模塊的名稱。
- 使用 VbaModule.Codes 屬性將代碼添加到模塊。
- 使用 Workbook.Save(String, SaveFormat.Xlsm) 方法保存工作簿。
以下代碼示例顯示如何使用 C# 將 VBA 宏添加到 Excel 工作簿。
// 如需完整示例和數據文件,請訪問 https://github.com/aspose-cells/Aspose.Cells-for-.NET
// 創建新工作簿
Workbook workbook = new Workbook();
// 訪問第一個工作表
Worksheet worksheet = workbook.Worksheets[0];
// 添加 VBA 模塊
int idx = workbook.VbaProject.Modules.Add(worksheet);
// 訪問 VBA 模塊,設置其名稱和代碼
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";
// 保存工作簿
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);
使用 C# 修改 Excel 文件中的 VBA 宏
您還可以使用以下步驟修改 Excel 文件中的現有 VBA 宏。
- 使用 Workbook 類加載 Excel 文件。
- 將 Workbook.VbaProject.Modules 集合中的 VBA 模塊訪問到 VbaModule 對像中。
- 使用 VbaModule.Codes 屬性從所需模塊中檢索代碼。
- 使用 Workbook.Save(String) 方法替換代碼並保存 Excel 文件。
以下代碼示例顯示如何使用 C# 修改 Excel 文件中的 VBA 宏。
// 如需完整示例和數據文件,請訪問 https://github.com/aspose-cells/Aspose.Cells-for-.NET
// 從源 Excel 文件創建工作簿對象
Workbook workbook = new Workbook("sample.xlsm");
// 更改 VBA 模塊代碼
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
// 用修改後的消息替換原始消息
if (code.Contains("This is test message."))
{
code = code.Replace("This is test message.", "This is Aspose.Cells message.");
module.Codes = code;
}
}
// 保存輸出的 Excel 文件
workbook.Save("output_out.xlsm");
獲得免費許可證
您可以使用有效期為 30 天的臨時許可證免費使用或評估 Aspose.Cells for .NET。 立即獲取。
結論
MS Excel 文件中的 VBA 宏用於自動執行與電子表格相關的各種類型的任務。為了以編程方式處理 VBA 宏,本文介紹瞭如何使用 C# 在 VBA 模塊中提取、添加和修改代碼。您可以使用 文檔 探索有關 C# 電子表格操作 API 的更多信息。
也可以看看
提示:您可能需要查看 Aspose 免費宏刪除網絡應用程序。