Como converter macros do Excel em .Net

Mais proprietários de pequenas empresas do que você imagina estão criando e escrevendo seus próprios programas de software, e muitas vezes seus primeiros passos de programação envolvem o uso do Visual Basic for Applications, ou VBA. VBA é a linguagem de programação usada com o Microsoft Excel e outros aplicativos do Office que permite automatizar quase todas as tarefas em um aplicativo do Office. Depois que os usuários adquirem uma compreensão da sintaxe VBA relativamente fácil de usar, muitos migram para a plataforma de desenvolvimento de aplicativos da Web da Microsoft, .NET. Se você tiver macros do Excel codificadas com VBA, verá que a sintaxe usada tanto no VBA quanto no .NET é semelhante. Portanto, você não precisa reinventar a roda e o código rígido do zero, o código do módulo .NET para as funções do Excel que você já escreveu. Se você seguir algumas regras de codificação simples, converter seu código VBA do Excel para uso em .NET será relativamente simples.

Exportar código VBA do Excel

1

Inicie o Excel e abra a pasta de trabalho que contém o código de macro que você deseja converter para .NET.

2

Pressione as teclas “Alt-F11” para iniciar o editor VBA. Aguarde alguns segundos para que o editor VBA abra e carregue todos os módulos de macro da pasta de trabalho ativa do Excel.

3

Localize a pasta “Módulos” sob o cabeçalho VBAProject no lado esquerdo da janela do editor VBA. Clique duas vezes na pasta “Módulos” para expandir e exibir todas as macros na pasta de trabalho ativa. Clique e selecione o nome do primeiro módulo da lista.

4

Clique em “Arquivo” na barra de menus e, em seguida, clique em “Exportar arquivo”. Insira um nome descritivo para o código do módulo no campo “Nome do arquivo”. Navegue até uma pasta conveniente em seu PC para salvar o arquivo do módulo de código de macro e clique em “Salvar”. O editor VBA salva o código da macro como um arquivo .BAS.

5

Use a opção “Exportar arquivo” na barra de menu “Arquivo” para exportar todos os outros módulos de macro da pasta de trabalho do Excel que você deseja converter para .NET. Feche a janela do editor VBA primeiro e saia do Excel.

Importando e convertendo macros do Excel em .NET

1

Inicie o Visual Basic ou Visual Basic Express em seu computador. Abra o arquivo de projeto .NET para o qual deseja importar o código de macro existente do Excel.

2

Clique no link “Projeto” na barra de menu e depois em “Adicionar Módulo”. No menu deslizante, clique em “Existente”. Navegue até a pasta onde salvou os arquivos .BAS exportados do Excel. Realce o primeiro arquivo .BAS na pasta e clique em abrir. O Visual Basic adiciona o módulo à janela de projeto do .NET.

3

Clique duas vezes no nome do módulo de macro do Excel que você importou. Quando você abre o código do módulo na janela do editor VB, provavelmente há algumas linhas no código que contêm texto em vermelho. Isso indica que a sintaxe do código usada não é compatível com VB ou .NET. Estas são as linhas do código que você deve alterar para fazer o módulo funcionar com seu aplicativo .NET.

4

Adicione uma anotação ByRef no início do código de macro importado logo após a sintaxe “Sub”. Por exemplo, se você importou um módulo de macro denominado OpenPowerPoint, a primeira linha de código contém a sintaxe “Sub OpenPowerPoint ().” Para tornar o código compatível como um módulo .NET, reescreva a sintaxe como “OpenPowerPoint (ByRef x As Integer).”

5

Remova todas as propriedades padrão de suas referências. Por exemplo, no VBA você pode escrever um código como “a =“ Hello World ”” e o Excel sabe que a variável “a” se refere ao texto. No entanto, em aplicativos VB ou .NET, suas propriedades padrão devem especificar o tipo de propriedade explicitamente. Usando o exemplo “a =“ Hello World ””, você deve alterar a sintaxe para “a.text =“ Hello World ”.”

6

Use o comando Call com suas chamadas de função ou método para um objeto externo. O Excel VBA permite que você chame uma função ou módulo externo com uma entrada simples “= NameOfFunctionToCall” na sintaxe do código. No entanto, em aplicativos .NET, você deve sempre usar o comando “Call NameOfFunctionToCall ()”.