VBA

SAP GUI Scripting com Excel VBA – automatize processos

Escrito por Adriano Pataro
em 12/10/2024

SAP GUI Scripting com Excel VBA é um processo de integração entre SAP e Excel, onde é possível otimizar a tarefas e ganhar tempo.

Se você já trabalha com o SAP, sabe que algumas tarefas repetitivas podem consumir tempo e energia.

Nesse artigo, vou mostrar como gravar um script no SAP, pegar o código gerado e adaptá-lo no Excel VBA, além de substituir valores inseridos no SAP pelas referências de células no Excel.

O que é o SAP GUI Scripting

O SAP GUI Scripting permite que você grave ações realizadas dentro do SAP e automatize essas tarefas repetitivas. Com o Excel VBA, você pode usar os dados do Excel diretamente no SAP, tornando o processo ainda mais eficiente.

Continue a leitura para aprender:

  • Como ativar o SAP GUI Scripting;
  • Gravar e salvar o script;
  • Executar o script;
  • Usar o Excel com VBA para automatizar o processo.

Ativando o gravador de Scripting

Antes de iniciar, verifique se o gravador de script está ativado. Para isso, siga estes passos:

  • Clique no ícone Ajustar Layout Local → Opções.
SAP GUI Scripting com Excel VBA - opções
  • Do lado esquerdo clique em Acessibilidade e scripting;
  • Depois clique em Scripiting;
  • Marque a caixa de seleção Ativar Scripting e clique em OK;
SAP GUI Scripting com Excel VBA - ativar

Gravando o script no SAP

O primeiro passo é gravar as ações que você realiza no SAP para que elas possam ser automatizadas. Vamos ver como gravar um script usando o gravador do SAP.

Vou usar como exemplo uma operação na transação ME2J. Vamos entrar na transação, inserir alguns dados e depois gerar um relatório. Veja o passo a passo.

  • Clique no ícone Ajustar Layout Local → Registro e Reprodução de Script.
SAP GUI Scripting com Excel VBA - gravação
Se a opção Registro e Reprodução de Script estiver esmaecida, isso indica que o script foi desabilitado para usuários neste servidor pela sua organização. Nesse caso, você precisará entrar em contato com seu administrador de TI para habilitar o script para você.
  • Clique nos 3 pontos para escolher o local e o nome da sua macro.
  • Mantenha a extensão .vbs no final do nome do arquivo.
SAP GUI Scripting com Excel VBA - gravar
  • Clique no ícone Registrar script (botão vermelho).
  • Entre na transação ME2J (ou outra, aqui é só um exemplo).
Observação: Digite a transação na barra SAP, não dê duplo clique na transação na barra de favoritos.
  • Insira as infomações como você faz manualmente.
  • Em seguida , clique no botão Executar (ícone do relógio) para gerar o relatório.
  • Após finalizar as ações, pare a gravação, clicando no botão Encerrar registro (botão laranja).
  • O código será exportado em um arquivo .vbs.

Código gerado pelo SAP GUI Scripting

Vá até o local que você configurou para salvar o script. Clique com o botão direito do mouse sobre o arquivo e escolha Abrir com Bloco de notas.

Este é o código que foi gravado:

If Not IsObject(Application) Then
    Set SapGuiAuto = GetObject("SAPGUI")
    Set Application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(Connection) Then
    Set Connection = Application.Children(0)
End If
If Not IsObject(Session) Then
    Set Session = Connection.Children(0)
End If
If IsObject(WScript) Then
    WScript.ConnectObject Session, "on"
    WScript.ConnectObject Application, "on"
End If

Session.findById("wnd[0]").maximize
Session.findById("wnd[0]/tbar[0]/okcd").Text = "ME2J"
Session.findById("wnd[0]").sendVKey 0
Session.findById("wnd[0]/usr/ctxtCN_NETNR-LOW").Text = "51141356377"
Session.findById("wnd[0]/usr/ctxtCN_NETNR-LOW").SetFocus
Session.findById("wnd[0]/usr/ctxtCN_NETNR-LOW").caretPosition = 11
Session.findById("wnd[0]/usr/ctxtLISTU").Text = "ZBEST_ALV"
Session.findById("wnd[0]/usr/ctxtLISTU").SetFocus
Session.findById("wnd[0]/usr/ctxtLISTU").caretPosition = 9
Session.findById("wnd[0]/tbar[1]/btn[8]").press

O código que começa em If Not IsObject(application) Then e vai até End If, é o que faz a conexão com o SAP.

Após isso, temos as linhas que foram gravadas de acordo com as ações.

session.findById("wnd[0]/tbar[0]/okcd").text = "ME2J" 'insere a transação no SAP.
session.findById("wnd[0]").sendVKey 0 'mesmo que pressionar a tecla Enter.
session.findById("wnd[0]/usr/ctxtCN_NETNR-LOW").text = "51141356377 'insere o valor 51141356377 no SAP.
session.findById("wnd[0]/usr/ctxtCN_NETNR-LOW").setFocus 'foco em um controle.
session.findById("wnd[0]/usr/ctxtCN_NETNR-LOW").caretPosition = 11 'posição do cursor.

Observação: estas 2 últimas linhas não são necessárias para que o código funcione. Em outro artigo falarei mais sobre elas.

session.findById("wnd[0]/usr/ctxtLISTU").text = "ZBEST_ALV" 'insere o valor ZBEST_ALV no SAP.
session.findById("wnd[0]/tbar[1]/btn[8]").press 'gera o relatório.

Para testar, clique no botão Encerrar (botão laranja na parte superior) duas vezes, para voltar à tela inicial.

Clique duas vezes no arquivo .vbs. As ações que você gravou são executadas até gerar o relatório.

Importando o código gerado para o Excel VBA

Agora que você gravou o SAP Script, o próximo passo é integrá-lo ao Excel VBA.

  • Inicie um arquivo Excel e acesse o editor de VBA . Pressione Alt + F11 para abrir o editor de VBA.
  • Crie um novo módulo (Inserir Módulo).
  • Digite Sub TesteSAP(), copie o código do script gerado pelo SAP e cole abaixo do texto digitado.

Substituindo valores por referências de células no Excel

Um dos maiores benefícios de usar o SAP Script com Excel VBA é a possibilidade de substituir os valores estáticos por referências de células no Excel. Isso permite automatizar a inserção de dados personalizados, diretamente do Excel.

Veja um exemplo de planilha criada para inserção dos dados no SAP:

Veja como fica o código alterando os valores digitados pelos valores nas células do Excel:

Sub TesteSAP()
    If Not IsObject(Application) Then
        Set SapGuiAuto = GetObject("SAPGUI")
        Set Application = SapGuiAuto.GetScriptingEngine
    End If
    If Not IsObject(Connection) Then
        Set Connection = Application.Children(0)
    End If
    If Not IsObject(Session) Then
        Set Session = Connection.Children(0)
    End If
    If IsObject(WScript) Then
        WScript.ConnectObject Session, "on"
        WScript.ConnectObject Application, "on"
    End If
    
    Session.findById("wnd[0]").maximize
    Session.findById("wnd[0]/tbar[0]/okcd").Text = Range("C3").Value
    Session.findById("wnd[0]").sendVKey 0
    Session.findById("wnd[0]/usr/ctxtCN_NETNR-LOW").Text = Range("C4").Value
    Session.findById("wnd[0]/usr/ctxtCN_NETNR-LOW").SetFocus
    Session.findById("wnd[0]/usr/ctxtCN_NETNR-LOW").caretPosition = 11
    Session.findById("wnd[0]/usr/ctxtLISTU").Text = Range("C5").Value
    Session.findById("wnd[0]/usr/ctxtLISTU").SetFocus
    Session.findById("wnd[0]/usr/ctxtLISTU").caretPosition = 9
    Session.findById("wnd[0]/tbar[1]/btn[8]").press
End Sub

Os textos em negrito são os valores das referências do Excel.

Exemplos de automação

Escolher variante pelo código VBA

Acesso aos menus, submenus e itens pelo código VBA

Retornar informações da barra de status pelo código VBA

Conclusão SAP GUI Scripting

Automatizar processos com SAP Script e Excel VBA é uma poderosa forma de economizar tempo, especialmente quando você lida com grandes volumes de dados.

O gravador de scripts do SAP facilita a captura das ações, e com o Excel VBA, você pode dinamizar essas ações substituindo valores fixos por referências de células, otimizando ainda mais os processos.

Com esses passos, você será capaz de transformar tarefas repetitivas em automações ágeis e confiáveis, utilizando o melhor das ferramentas que o SAP Script com Excel VBA oferece.

Este foi um um primeiro exemplo simples, para você saber que é possível automatizar este processo de inserção de dados no SAP.

Nos próximos artigos vou falar sobre outros comandos, controles do SAP, loop com VBA e muito mais.

Participe

O que achou do SAP GUI Scripting com Excel VBA? Deixe sua opinião nos comentários.

Se este conteúdo foi relevante para você, convide seus amigos para que eles também fiquem sabendo deste material.

Precisa desta automação na sua empresa? Entre em contato e vamos conversar.

Um abraço e até a próxima.

Compartilhe este conteúdo

Artigos Relacionados

Page [tcb_pagination_current_page] of [tcb_pagination_total_pages]

Adriano Pataro

Meu nome é Adriano Pataro, sou certificado pela Microsoft como Excel Specialist e autor do livro Dominando o Excel 2019. Graduando ciência de dados, trabalho como analista de dados e uso o Excel há mais de 15 anos. Em 2005 resolvi trazer meu conhecimento para a internet e compartilhar com você aqui no meu site e nas redes sociais.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Fique por dentro das novidades

Cadastre seu e-mail e receba os conteúdos em primeira mão.

>

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

O site utiliza cookies para melhorar sua experiência de navegação.
Success message!
Warning message!
Error message!