Capítulo 2 · 2.5
Macros do Word e do Excel (VBA): o que ainda funciona?
Uma macro é um pequeno programa dentro de um documento: um botão que cria uma fatura ou ordena uma lista. No Word e no Excel, as macros são escritas em VBA. Reconhece estes ficheiros pela extensão docm, xlsm ou pptm, ou então são ficheiros doc e xls antigos.
A verdade sem rodeios
| LibreOffice | Euro-Office | |
|---|---|---|
| Abrir o ficheiro e utilizar os dados | Sim | Sim |
| Executar macros VBA | Uma parte, sobretudo do Excel, se ativar essa opção | Não |
| Macros próprias | Em LibreOffice Basic e Python | Em JavaScript |
No LibreOffice
Porque é que nada acontece? Por motivos de segurança, o LibreOffice desativa as macros por predefinição. Nesse caso, verá uma mensagem como As macros estão desativadas devido às definições de segurança de macros.
- Escolha Ferramentas > Opções... > Carregar/Guardar > Propriedades VBA. Em Microsoft Excel (e, se necessário, Word), marque Carregar código do Basic, Código executável e Guardar código original do Basic.
- Escolha Ferramentas > Opções... > LibreOffice > Proteger e clique em Segurança de macros.... Escolha Médio: assim, o LibreOffice pergunta-lhe o que pretende fazer sempre que abrir um ficheiro com macros.
- Feche o ficheiro e abra-o novamente. Escolha Ativar macros (Enable Macros), mas apenas se confiar no ficheiro.
O LibreOffice consegue executar muito código VBA, mas não todo. Se um botão não funcionar, a macro terá de ser adaptada no editor de Basic (Ferramentas > Macros > Editar macros). Para isso, são necessários conhecimentos de programação.
Se voltar a guardar o ficheiro como xlsm, o código VBA original é preservado graças a Guardar código original do Basic. Se o guardar como ods, o código VBA perde-se.
No Euro-Office
O Euro-Office não executa VBA. O ficheiro abre normalmente e vê todos os dados e fórmulas, mas os botões não fazem nada. No separador Ver, em Macros, pode criar uma macro em JavaScript ou gravar uma. Mais informações em Um ficheiro do Excel com macros VBA: e agora?.

Ainda precisa da macro?
Muitas macros antigas ordenam, filtram, colorem ou procuram algo. Muitas vezes, isso pode ser feito sem macro:
- colorir: formatação condicional (Formatação condicional: colorir células automaticamente);
- procurar: PROCV ou PROCX (Procura vertical com PROCV e PROCX);
- resumir: uma tabela dinâmica (Criar uma tabela dinâmica);
- cartas a partir de uma lista: impressão em série (Criar cartas a partir de uma lista de endereços (impressão em série)).
Mais informações sobre as opções disponíveis em Macros, modelos e testes de compatibilidade.
Atenção: as macros em ficheiros de terceiros podem ser prejudiciais. Nunca defina a segurança de macros como Baixo e ative as macros apenas em ficheiros em que confia. Guarde sempre o original de um ficheiro com macros.
