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