O arquivo XLSM, como muitos sabem, nada mais é do que um arquivo ZIP contendo diversos arquivos que compõe a pasta de trabalho do Excel.
Podemos renomear qualquer arquivo .XLSX ou .XLSM para a extensão .ZIP, descompatá-lo e navegar pelo seu conteúdo de maneira tão simples quanto as pastas do Windows Explorer. Encontramos nesta estrutura de pastas as imagens que foram inseridas na planilha, valores e fórmulas. Encontramos também o código VBA que fica em um arquivo chamado vbaProject.bin.
O arquivo vbaProject.bin é do tipo binário, e não é possível editar ele diretamente, mas neste artigo o objetivo é apenas fazer o upgrade do código da macro, então vamos lá.
Vamos levar em consideração que você desenvolveu uma macro complexa e extensa, incluindo diversos forms, módulos e classes, e que esta macro está funcionando normalmente no seu cliente até que um dia ele precisa de uma melhoria no código. Neste caso você tem algumas possibilidades de fazer este upgrade:
- Acessar o computador do cliente remotamente, abrir a planilha, modificar o código diretamente no VBA. Isso pode até funcionar para pequenas modificações, mas em casos onde a alteração seja muito complexa, você ficará muito tempo conectado apenas fazendo as alterações.
- Pedir para que o cliente envie a planilha pra você e você faz as alterações de seu computador. Esta parece uma solução bem razoável, mas e se a planilha do cliente possui informações financeiras sensíveis ou que ele não gostaria que outras pessoas acessem? Manter a privacidade do cliente é um critério importante nesta área.
Sem mais enrolações, vamos à solução do problema da forma mais rápida e profissional.
Faça o upgrade com todas as funções que desejar na sua cópia do arquivo. Então nomeie o seu arquivo com a extensão .ZIP, abra o arquivo e acesse a pasta _xl
Você vai encontrar o arquivo vbaProject.bin, este arquivo possui todas as instruções referentes ao seu projeto VBA, como o próprio nome diz.
Para fazer o upgrade da macro no arquivo de seu cliente, basta substituir este arquivo na pasta de trabalho dele, para isso você pode criar um script em qualquer linguagem de programação que faça este tipo de acesso, lembrando sempre de fazer o backup do arquivo do seu cliente antes de fazer qualquer alteração.
Se você não tem muitos conhecimentos em uma linguagem de programação que possa te ajudar nesta tarefa, podemos retornar à situação 1. que eu mencionei lá em cima, caso o cliente possua dados sensíveis, acesse o computador dele e faça a alteração manualmente, sem precisar abrir o Excel em nenhum momento. Se você fizer isso por acesso remoto será um processo muito rápido e você terá todo o seu projeto VBA alterado na planilha dele.
Caso precise de ajuda profissional para implementar este código ou então para automatizar a sua planilha, me envie uma mensagem através do formulário de contato que responderei em breve, se preferir, pode me enviar um e-mail através do endereço [email protected].