Trabalhar com macro VBA em C#

VBA (Visual Basic for Applications) é uma linguagem de programação que é usada em arquivos MS Excel para automatizar operações relacionadas a planilhas. As macros VBA são usadas para escrever funções definidas pelo usuário que permitem acelerar as tarefas que você precisa executar manualmente. Neste artigo, você aprenderá a trabalhar com macros VBA em arquivos do MS Excel programaticamente. No final deste artigo, você poderá extrair, adicionar e modificar macros VBA em pastas de trabalho do Excel usando C#.

Trabalhar com macros VBA em arquivos do Excel - API C#

Aspose.Cells for .NET é uma biblioteca de classes C# projetada para automatizar a manipulação de planilhas de dentro dos aplicativos .NET. A API fornece uma ampla gama de recursos que permitem que você crie, modifique e converta pastas de trabalho do MS Excel. Além disso, a API possibilita trabalhar com macros VBA sem problemas. Aspose.Cells para .NET está disponível para download como um arquivo DLL, bem como hospedado em NuGet.

PM> Install-Package Aspose.Cells

Extraia macros VBA de um arquivo do Excel usando C#

Vamos começar extraindo as macros VBA de uma pasta de trabalho existente do Excel. A seguir estão as etapas para realizar esta operação.

O exemplo de código a seguir mostra como extrair a macro VBA de uma pasta de trabalho do Excel usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Criar objeto de pasta de trabalho do arquivo Excel de origem
Workbook workbook = new Workbook("sample.xlsm");

// Extraia o código de cada módulo VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

Adicionar macros VBA a um arquivo do Excel usando C#

Aspose.Cells para .NET também permite adicionar macros VBA a arquivos Excel novos ou existentes. Isso pode ser feito seguindo as etapas abaixo.

O exemplo de código a seguir mostra como adicionar uma macro VBA à pasta de trabalho do Excel usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Criar nova pasta de trabalho
Workbook workbook = new Workbook();

// Acesse a primeira planilha
Worksheet worksheet = workbook.Worksheets[0];

// Adicionar módulo VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);

// Acesse o Módulo VBA, defina seu nome e códigos
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";

// Salve a pasta de trabalho
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

Modificar a macro VBA em um arquivo do Excel usando C#

Você também pode modificar as macros VBA existentes em um arquivo do Excel usando as etapas a seguir.

O exemplo de código a seguir mostra como modificar uma macro VBA em um arquivo do Excel usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Criar objeto de pasta de trabalho do arquivo Excel de origem
Workbook workbook = new Workbook("sample.xlsm");

// Alterar o código do módulo VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // Substituir a mensagem original pela mensagem modificada
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// Salve o arquivo Excel de saída
workbook.Save("output_out.xlsm");

Obtenha uma licença gratuita

Você pode usar ou avaliar o Aspose.Cells for .NET gratuitamente usando uma licença temporária válida por 30 dias. Adquira o seu agora.

Conclusão

As macros VBA em arquivos do MS Excel são usadas para automatizar vários tipos de tarefas relacionadas a planilhas. Para lidar com macros VBA programaticamente, este artigo abordou como extrair, adicionar e modificar código em módulos VBA usando C#. Você pode explorar mais sobre a API de manipulação de planilha C# usando documentação.

Veja também

Dica: você pode conferir o Aspose aplicativo da web de remoção de macro GRATUITO.