Arquivos de log usando VBA no Microsoft Excel

Anonim

Em computadores, um arquivo de log é um arquivo que registra eventos que ocorrem em um sistema operacional ou execução de outro software, ou mensagens entre diferentes usuários de um software de comunicação. Registrar é o ato de manter um registro. No caso mais simples, as mensagens são gravadas em um único arquivo de log.

Considere um cenário, o aplicativo está registrando os detalhes do usuário no arquivo de log que está acessando o aplicativo.

Os arquivos de log são úteis em diferentes situações, especialmente para desenvolvedores. Os arquivos de log são arquivos de texto simples que podem armazenar informações temporárias ou mais permanentes. Você não precisa de muito código para criar um arquivo de log. Neste artigo, vamos nos concentrar na criação de arquivos de log automáticos em uma pasta específica.

Pergunta: Como posso criar um arquivo de bloco de notas que contém a data, hora e nome de usuário atuais sempre que o arquivo for aberto?

A seguir está o instantâneo da pasta de trabalho do Excel contendo informações financeiras:

Neste exemplo, o resultado estará na forma de arquivo de texto. O bloco de notas conterá data, hora e outros detalhes; mais ou menos assim:

Para criar arquivos de log, precisamos seguir as etapas abaixo para iniciar o editor VB:

  • Clique na guia Desenvolvedor
  • No grupo Código, selecione Visual Basic

  • Clique em Inserir e depois em Módulo

  • Isso criará um novo módulo
  • Insira o seguinte código no Módulo
 Sub LogInformation (LogMessage As String) Const LogFileName As String = "D: \ FOLDERNAME \ TEXTFILE.LOG" Dim FileNum As Integer FileNum = FreeFile 'próximo número de arquivo Abrir LogFileName para acrescentar como #FileNum' cria o arquivo se ele não existir Imprimir #FileNum, LogMessage 'escrever informações no final do arquivo de texto Fechar #FileNum' fechar o arquivo End Sub 
 Public Sub DisplayLastLogInformation () Const LogFileName As String = "D: \ FOLDERNAME \ TEXTFILE.LOG" Dim FileNum As Integer, tLine As String FileNum = FreeFile 'próximo número de arquivo Abrir LogFileName para acesso de entrada Read Shared As #f' abrir o arquivo para lendo Do While Not EOF (FileNum) Line Input #FileNum, tLine 'lê uma linha do arquivo de texto Loop' até que a última linha seja lida Close #FileNum 'fecha o arquivo MsgBox tLine, vbInformation, "Última informação de log:" End Sub 
 Sub DeleteLogFile (FullFileName As String) Em erro Resume Next 'ignorar erros possíveis Kill FullFileName' excluir o arquivo se ele existir e for possível On Error GoTo 0 'quebrar em erros End Sub 

Copie o seguinte código no módulo ThisWorkbook

 Private Sub Workbook_Open () LogInformation ThisWorkbook.Name & "aberto por" & _ Application.UserName & "" & Format (Agora, "aaaa-mm-dd hh: mm") End Sub 

  • Agora o código VBA está pronto para funcionar; da próxima vez que abrirmos a pasta de trabalho do Excel, a data e a hora serão salvas no bloco de notas; consulte a imagem abaixo:

A macro não substituirá os dados.

Conclusão: A macro será executada sempre que a pasta de trabalho for aberta no caminho e pasta especificados.

Se você gostou de nossos blogs, compartilhe com seus amigos no Facebook. E você também pode nos seguir no Twitter e no Facebook.

Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar, complementar ou inovar nosso trabalho e torná-lo melhor para você. Escreva-nos no site de e-mail