Protokolldateien mit VBA in Microsoft Excel

Anonim

Bei Computern ist eine Protokolldatei eine Datei, die entweder Ereignisse aufzeichnet, die in einem Betriebssystem oder anderen Softwareausführungen auftreten, oder Nachrichten zwischen verschiedenen Benutzern einer Kommunikationssoftware. Logging ist das Führen eines Protokolls. Im einfachsten Fall werden Nachrichten in eine einzige Protokolldatei geschrieben.

Stellen Sie sich ein Szenario vor, bei dem die Anwendung die Benutzerdetails in der Protokolldatei protokolliert, die auf die Anwendung zugreifen.

Protokolldateien sind in verschiedenen Situationen nützlich, insbesondere für Entwickler. Protokolldateien sind reine Textdateien, die Informationen vorübergehend oder dauerhaft speichern können. Sie benötigen nicht viel Code, um eine Protokolldatei zu erstellen. In diesem Artikel konzentrieren wir uns auf das Erstellen automatischer Protokolldateien in einem bestimmten Ordner.

Frage: Wie kann ich eine Notizblockdatei erstellen, die das aktuelle Datum, die Uhrzeit und den Benutzernamen enthält, wenn die Datei geöffnet wird?

Im Folgenden sehen Sie die Momentaufnahme der Excel-Arbeitsmappe mit Finanzinformationen:

In diesem Beispiel liegt das Ergebnis in Form einer Textdatei vor. Der Notizblock enthält Datum, Uhrzeit und andere Details; ungefähr so:

Um Protokolldateien zu erstellen, müssen wir die folgenden Schritte ausführen, um den VB-Editor zu starten:

  • Klicken Sie auf die Registerkarte Entwickler
  • Wählen Sie aus der Gruppe Code die Option Visual Basic

  • Klicken Sie auf Einfügen und dann auf Modul

  • Dadurch wird ein neues Modul erstellt
  • Geben Sie den folgenden Code in das Modul ein
 Sub LogInformation(LogMessage As String) Const LogFileName As String = "D:\FOLDERNAME\TEXTFILE.LOG" Dim FileNum As Integer FileNum = FreeFile ' nächste Dateinummer Open LogFileName For Append As #FileNum ' erstellt die Datei, wenn sie nicht existiert Print #FileNum, LogMessage ' Informationen am Ende der Textdatei schreiben Close #FileNum ' Datei schließen End Sub 
 Public Sub DisplayLastLogInformation() Const LogFileName As String = "D:\FOLDERNAME\TEXTFILE.LOG" Dim FileNum As Integer, tLine As String FileNum = FreeFile ' nächste Dateinummer Open LogFileName for Input Access Read Shared As #f ' Datei öffnen für lesen Do While Not EOF(FileNum) Line Input #FileNum, tLine ' eine Zeile aus der Textdatei lesen Loop ' bis die letzte Zeile gelesen wird Close #FileNum ' die Datei schließen MsgBox tLine, vbInformation, "Last log information:" End Sub 
 Sub DeleteLogFile(FullFileName As String) On Error Resume Next ' mögliche Fehler ignorieren Kill FullFileName ' Datei löschen, falls vorhanden und möglich On Error GoTo 0 ' bei Fehlern abbrechen End Sub 

Kopieren Sie den folgenden Code in das Modul ThisWorkbook

 Private Sub Workbook_Open() LogInformation ThisWorkbook.Name & " geöffnet von " & _ Application.UserName & " " & Format(Jetzt, "yyyy-mm-dd hh:mm") End Sub 

  • Jetzt ist der VBA-Code fertig; Wenn wir das nächste Mal die Excel-Arbeitsmappe öffnen, werden Datum und Uhrzeit im Notizblock gespeichert. siehe unten bild:

Das Makro überschreibt keine Daten.

Abschluss: Das Makro wird jedes Mal ausgeführt, wenn die Arbeitsmappe unter dem angegebenen Pfad und Ordner geöffnet wird.

Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie mit Ihren Freunden auf Facebook. Und Sie können uns auch auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder erneuern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site