在 C# 中使用 VBA 宏

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 宏開始。以下是執行此操作的步驟。

以下代碼示例顯示如何使用 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 文件中。這可以通過以下步驟完成。

以下代碼示例顯示如何使用 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 宏。

以下代碼示例顯示如何使用 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 免費宏刪除網絡應用程序