Pliki dziennika za pomocą VBA w programie Microsoft Excel

Anonim

W komputerach plik dziennika to plik, który rejestruje zdarzenia występujące w systemie operacyjnym lub innym uruchomionym oprogramowaniu lub wiadomości między różnymi użytkownikami oprogramowania komunikacyjnego. Rejestrowanie to czynność prowadzenia dziennika. W najprostszym przypadku komunikaty są zapisywane w jednym pliku dziennika.

Rozważmy scenariusz, w którym aplikacja rejestruje szczegóły użytkownika w pliku dziennika, który uzyskuje dostęp do aplikacji.

Pliki dziennika są przydatne w różnych sytuacjach, zwłaszcza dla programistów. Pliki dziennika to zwykłe pliki tekstowe, które mogą przechowywać informacje tymczasowe lub bardziej trwałe. Nie potrzebujesz dużo kodu, aby utworzyć plik dziennika. W tym artykule skupimy się na tworzeniu automatycznych plików dziennika w określonym folderze.

Pytanie: Jak mogę utworzyć plik notatnika, który zawiera aktualną datę, godzinę i nazwę użytkownika za każdym razem, gdy plik zostanie otwarty?

Poniżej znajduje się migawka skoroszytu programu Excel zawierającego informacje finansowe:

W tym przykładzie wynik będzie miał postać pliku tekstowego. Notatnik będzie zawierał datę, godzinę i inne szczegóły; trochę tak:

Aby utworzyć pliki dziennika, musimy wykonać poniższe kroki, aby uruchomić edytor VB:

  • Kliknij kartę Deweloper
  • Z grupy Kod wybierz Visual Basic

  • Kliknij Wstaw, a następnie Moduł

  • Spowoduje to utworzenie nowego modułu
  • Wprowadź następujący kod w module
 Sub LogInformation(LogMessage As String) Const LogFileName As String = "D:\FOLDERNAME\TEXTFILE.LOG" Dim FileNum As Integer FileNum = FreeFile ' następny numer pliku Open LogFileName For Append As #FileNum ' tworzy plik, jeśli nie istnieje Print #FileNum, LogMessage ' zapisz informację na końcu pliku tekstowego Close #FileNum ' zamknij plik End Sub 
 Public Sub DisplayLastLogInformation() Const LogFileName As String = "D:\FOLDERNAME\TEXTFILE.LOG" Dim FileNum As Integer, tLine As String FileNum = FreeFile ' następny numer pliku Open LogFileName dla dostępu do danych wejściowych Odczyt Shared As #f ' otwórz plik dla odczyt Do While Not EOF(FileNum) Line Input #FileNum, tLine ' odczytaj linię z pliku tekstowego Loop ' aż do odczytania ostatniej linii Close #FileNum ' zamknij plik MsgBox tLine, vbInformation, "Last log information:" End Sub 
 Sub DeleteLogFile(FullFileName As String) On Error Resume Next ' zignoruj ​​możliwe błędy Kill FullFileName ' usuń plik, jeśli istnieje i jest to możliwe On Error GoTo 0 ' przerwa przy błędach End Sub 

Skopiuj następujący kod w module ThisWorkbook

 Private Sub Workbook_Open() LogInformation ThisWorkbook.Name & " otwarty przez " & _ Application.UserName & " " & Format(Now, "rrrr-mm-dd hh:mm") End Sub 

  • Teraz kod VBA jest gotowy; następnym razem, gdy otworzymy skoroszyt programu Excel, data i godzina zostaną zapisane w notatniku; patrz poniżej obrazek:

Makro nie nadpisze danych.

Wniosek: Makro będzie uruchamiane za każdym razem, gdy skoroszyt zostanie otwarty w określonej ścieżce i folderze.

Jeśli podobały Ci się nasze blogi, podziel się nimi ze znajomymi na Facebooku. A także możesz śledzić nas na Twitterze i Facebooku.

Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy ulepszyć, uzupełnić lub unowocześnić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail