Compartilhar via

Agendador de Tarefas executar Macro do Excel

Luciano Rodrigues da Mata 0 Pontos de reputação
2024-09-06T21:47:28.64+00:00

Boa noite Pessoal, me deem uma ajuda se possivel!

Estou precisando rodar código de VBA para executar uma tarefa pelo Excel, e estou incluindo ela no Agendador de Tarefas para executar com máquina ligada ou não e privilégios mais alto, porém ao fazer script via .VBS nessa opção ele não executa o processo, fica tipo no limpo, não vai, e se eu tirar a opção executar com máquina ligada ou não e privilégios mais alto ele funciona corretamente! Alguem tem alguma luz para ajudar?

VBS funciona no agendador:

User's image

Agora colocando essas duas opções não funciona, e isso acontece somente quando para executar processo pelo Excel, seja na versão 2013 ou na versão 365.

User's image

Microsoft 365 e Office | Instalar, resgatar, ativar | Para empresas | Windows
0 comentários Sem comentários
{count} votos

2 respostas

Classificar por: Mais útil
  1. Rodrigo Azevedo 5 Pontos de reputação
    2024-09-09T16:26:57.24+00:00

    Olá Luciano!

    Algumas possíveis causas e soluções:

    1. Problemas de permissão no Excel:
      • O Excel geralmente requer permissões interativas (usuário logado) para executar macros VBA. Quando você seleciona "executar com o usuário conectado ou não", ele perde essa interação com o ambiente gráfico do Windows. Isso pode impedir a execução da automação.
      Solução: Tente configurar a tarefa para que o Excel seja executado em uma sessão de usuário real (com o usuário conectado).
    2. Configurações de nível de integridade (UAC):
      • Mesmo com privilégios elevados, o Excel pode não estar respondendo corretamente às elevações de permissão exigidas pelo UAC.

    Solução: Verifique as configurações do UAC no sistema. Se for um servidor Windows, talvez precise ajustar as políticas de segurança para permitir que o Excel rode como administrador sem pedir permissão interativa.

    1. Configuração do Excel no Agendador de Tarefas:
    • Algumas vezes, o Excel em segundo plano (sem a interface gráfica) pode ter problemas para abrir arquivos, especialmente se houver avisos ou prompts (como de segurança). Solução: No seu script VBS, adicione a linha ExcelApp.DisplayAlerts = False antes de abrir o arquivo Excel, assim ele ignora qualquer aviso.
    1. Erros de tempo de execução no Excel:
      • Quando o Excel é executado sem a interface gráfica, erros que normalmente seriam exibidos como mensagens de alerta na interface podem fazer com que o processo falhe silenciosamente.

    Solução: Adicione um bloco de tratamento de erro no seu VBA para capturar e logar erros que possam ocorrer durante a execução. Algo assim no seu VBA:

     vba
       On Error Resume Next
       ' Sua macro aqui
       If Err.Number <> 0 Then
       **' Salvar erro no log**
       End If
     
    
    • Tente verificar os logs de eventos no Agendador de Tarefas para identificar se algum erro específico está sendo lançado quando você usa essas opções.
    • Se o problema persistir, como alternativa, pode considerar transformar o VBA em um script mais independente (como PowerShell) que manipula o Excel sem depender de tantos requisitos interativos.
    1 pessoa achou esta resposta útil.
    0 comentários Sem comentários

  2. LUCIANO RODRIGUES DA MATA 0 Pontos de reputação
    2024-12-04T21:09:10.3066667+00:00

    Olá Rodrigo, boa noite!

    Vou fazer o testes como você orientou, porém imagino que seja algum bloqueio, pois sem fazer a flag na opção privilégios mais alto o Agendador funciona corretamente o VBA, tanto para rodar um VBA via .bat ou via .vbs, além disso todos outros processos que faço o scheduler sendo Oracle, ou outros softwares funcionam muito bem no Agendador com privilégios mais alto, porém aplicação do Excel não.

    Obrigado.

    0 comentários Sem comentários

Sua resposta

As respostas podem ser marcadas como Respostas Aceitas pelo autor da pergunta, o que ajuda os usuários a saber a resposta que resolveu o problema do autor.