Confira abaixo os problemas comuns que podem ocorrer ao converter seu código VBA para o Apps Script com o Macro Converter.
Impressão
As APIs do VBA que imprimem arquivos são convertidas automaticamente para o Apps Script, mas podem se comportar de maneira diferente da API do VBA original. Veja dois exemplos:
API VBA | Comportamento no Apps Script |
---|---|
PrintOut | Converte para o Apps Script, mas a API do Apps Script é impressa em um arquivo em vez de uma impressora. Você pode imprimir o arquivo PDF manualmente. |
PrintToFile | Converte em Apps Script. O arquivo PDF é salvo na pasta Meu Drive. |
Itens não convertidos
Os recursos abaixo não são convertidos pelo Macro Converter e precisam ser convertidos manualmente:
- Alguns tipos de acionadores
- Userforms (em inglês)
- Tipos de intervalos nomeados não compatíveis
Gatilhos
Dois tipos de acionadores, atalhos de teclado e alguns acionadores baseados em eventos, não são convertidos pelo Conversor de macros. Em muitos casos, é possível criar esses gatilhos manualmente.
Atalhos do teclado
Para adicionar atalhos de teclado, siga as etapas para importar funções como macros.
Gatilhos baseados em eventos
Alguns eventos do código VBA, como BeforeClose
ou BeforeSave
, não têm
equivalentes no Apps Script, mas é possível criar uma solução alternativa.
Para eventos como BeforeClose
, é possível criar um menu ou botão personalizado para clicar
e realizar a ação que precisa acontecer antes de fechar a planilha.
Como o Google Sheets salva automaticamente cada edição, as soluções alternativas para eventos como
BeforeSave
não são viáveis.
Userforms
No VBA, uma UserForm é uma janela ou caixa de diálogo na interface do usuário (IU) de um aplicativo. O Macro Converter não converte UserForms. É possível criá-las manualmente no Apps Script.
Criar uma caixa de diálogo de formulário do usuário
- No computador, abra o arquivo convertido no Planilhas Google.
- Na parte de cima, clique em Extensões > ** Apps Script**.
- À esquerda do editor, ao lado de "Arquivos", clique em Adicionar um arquivo > HTML. Recomendamos que você dê ao arquivo HTML o mesmo nome do UserForm do VBA original.
- Adicione os campos e as informações que você quer que apareçam no formulário. Saiba mais sobre formulários HTML em W3school.com.
- À esquerda, clique no arquivo do Apps Script (arquivo GS) que tem o código convertido.
- Se você já tiver um acionador
onOpen()
no código, atualize-o com o código abaixo. Se você não tiver o acionadoronOpen()
no código, adicione o código abaixo.function onOpen() { SpreadsheetApp.getUi() .createMenu('User Form') .addItem('Show Form', 'showForm') .addToUi(); } function showForm() { var html = HtmlService.createHtmlOutputFromFile('userform_module_name') .setWidth(100) .setTitle('Sign-up for Email Updates'); SpreadsheetApp.getUi().showSidebar(html); }
- Substitua
userform_module_name
pelo nome do arquivo HTML adicionado. - Na parte de cima, clique em Salvar projeto .
- Mude para a planilha Google e atualize a página.
- Na parte de cima da planilha do Google, clique em Formulário do usuário > Mostrar formulário.
Intervalos nomeados
No Excel, os intervalos nomeados são nomes dados a uma única célula ou a um intervalo de células.
Quando você converte seu arquivo do Excel para as Planilhas Google, alguns tipos de intervalos nomeados não são convertidos porque não são compatíveis. Veja dois exemplos:
Intervalos nomeados sem suporte | Descrição |
---|---|
Tabelas | Não é compatível com o Planilhas Google, mas tem uma solução alternativa.
Para recriar esse intervalo nomeado nas Planilhas, adicione um intervalo nomeado que aponte para a notação A1 do intervalo da tabela. Use o mesmo nome do intervalo nomeado original no código do VBA para que o código convertido o reconheça. |
Lista de intervalos | Não é compatível com o Planilhas Google. Não há uma solução alternativa. |
Artigos relacionados
- Visão geral do complemento Macro Converter
- Determinar se as macros do VBA são compatíveis
- Converter macros do VBA em Apps Script
- Corrigir erros no código convertido
- Assistir tutoriais do Macro Converter
- Lista de APIs do VBA compatíveis