Resolver problemas comuns

Este guia lista problemas comuns que podem ocorrer ao converter o código do Visual Basic for Applications (VBA) para o Apps Script usando o Macro Converter.

As APIs do VBA que imprimem arquivos são convertidas automaticamente para o Apps Script, mas podem se comportar de maneira diferente da API original do VBA. A tabela a seguir mostra dois exemplos:

API do VBAComportamento no Apps Script
PrintOutÉ convertido para o Apps Script, mas a API do Apps Script imprime em um arquivo em vez de uma impressora. Imprima o arquivo PDF manualmente.
PrintToFileÉ convertido para o Apps Script. O arquivo PDF é salvo na pasta Meu Drive.

Itens não convertidos

Os recursos a seguir não são convertidos pelo Macro Converter e precisam ser convertidos manualmente:

Gatilhos

Dois tipos de gatilhos, atalhos de teclado e alguns gatilhos baseados em eventos, não são convertidos pelo Macro Converter. 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 talvez seja 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 ocorrer antes de fechar a planilha.

Não é possível criar soluções alternativas para o evento BeforeSave porque o Planilhas Google salva automaticamente as alterações à medida que você as faz.

Userforms

No VBA, um UserForm é uma janela ou caixa de diálogo na interface do usuário (IU) de um aplicativo. O Macro Converter não converte UserForms. Crie-os manualmente no Apps Script.

Criar uma caixa de diálogo de formulário do usuário

  1. No computador, abra o arquivo convertido no Planilhas.
  2. Na parte de cima, clique em Extensões > ** Apps Script**.
  3. À 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 original do VBA.
  4. 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.
  5. À esquerda, clique no arquivo do Apps Script (arquivo GS) que tem o código convertido.
  6. Se você já tiver um gatilho onOpen no código, atualize-o com o código a seguir. Se você não tiver o gatilho onOpen no código, adicione o código a seguir.
    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);
    }
        
  7. Substitua userform_module_name pelo nome do arquivo HTML que você adicionou.
  8. Na parte de cima, clique em Salvar projeto .
  9. Mude para a Planilha Google e atualize a página.
  10. Na parte de cima da Planilha Google, clique em Formulário do usuário > Mostrar formulário.

Intervalos nomeados

No Excel, os intervalos nomeados são nomes atribuídos a uma única célula ou intervalo de células.

Ao converter arquivos do Excel para o Planilhas, alguns tipos de intervalos nomeados não são convertidos porque não são compatíveis. A tabela a seguir lista exemplos comuns:

Intervalos nomeados não compatíveisDescrição
TabelasNão é compatível com o Planilhas, mas tem uma solução alternativa.

Para recriar esse intervalo nomeado no 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 VBA para que o código convertido o reconheça.
Lista de intervalosIndisponível no Planilhas. Não há uma solução alternativa.