Protokolovat soubory pomocí VBA v aplikaci Microsoft Excel

Anonim

V počítačích je soubor protokolu soubor, který zaznamenává buď události, ke kterým dochází v operačním systému nebo v jiném spuštění softwaru, nebo zprávy mezi různými uživateli komunikačního softwaru. Protokolování je akt vedení protokolu. V nejjednodušším případě jsou zprávy zapsány do jednoho souboru protokolu.

Zvažte scénář, kdy aplikace zaznamenává podrobnosti o uživateli do souboru protokolu, kteří k aplikaci přistupují.

Soubory protokolu jsou užitečné v různých situacích, zejména pro vývojáře. Soubory protokolu jsou soubory prostého textu, které mohou ukládat informace dočasné nebo trvalejší. K vytvoření souboru protokolu nepotřebujete mnoho kódu. V tomto článku se zaměříme na vytváření souborů automatického protokolu v konkrétní složce.

Otázka: Jak mohu vytvořit soubor poznámkového bloku, který obsahuje aktuální datum, čas a uživatelské jméno, kdykoli se soubor otevře?

Následuje snímek sešitu aplikace Excel obsahující finanční informace:

V tomto případě bude výsledek ve formě textového souboru. Poznámkový blok bude obsahovat datum, čas a další podrobnosti; asi takto:

Chcete -li vytvářet soubory protokolu, musíme ke spuštění editoru VB provést následující kroky:

  • Klikněte na kartu Vývojář
  • Ze skupiny kódů vyberte Visual Basic

  • Klikněte na Vložit a poté na Modul

  • Tím se vytvoří nový modul
  • Do modulu zadejte následující kód
 Sub LogInformation (LogMessage As String) Const LogFileName As String = "D: \ FOLDERNAME \ TEXTFILE.LOG" Dim FileNum As Integer FileNum = FreeFile 'next file number Open LogFileName For Append As #FileNum' vytvoří soubor, pokud neexistuje Vytisknout #FileNum, LogMessage 'zapsat informace na konec textového souboru Zavřít #FileNum' zavřít soubor End Sub 
 Public Sub DisplayLastLogInformation () Const LogFileName As String = "D: \ FOLDERNAME \ TEXTFILE.LOG" Dim FileNum As Integer, tLine As String FileNum = FreeFile 'next file number Open LogFileName For Input Access Read Shared As #f' open the file for čtení Do While Not EOF (FileNum) Line Input #FileNum, tLine 'read a line from the text file Loop' until the last line is read Close #FileNum 'close the file MsgBox tLine, vbInformation, "Last log information:" End Sub 
 Sub DeleteLogFile (FullFileName As String) On Error Resume Next 'ignore possible errors Kill FullFileName' delete the file if it exists and it is possible On Error GoTo 0 'break on errors End Sub 

Zkopírujte následující kód do modulu ThisWorkbook

 Soukromý dílčí sešit_Open () LogInformation ThisWorkbook.Name & "opened by" & _ Application.UserName & "" & Format (Now, "yyyy-mm-dd hh: mm") End Sub 

  • Nyní je kód VBA připraven; příště, když otevřeme excelový sešit, datum a čas se uloží do poznámkového bloku; viz obrázek níže:

Makro nepřepíše data.

Závěr: Makro se spustí pokaždé, když se sešit otevře na zadané cestě a složce.

Pokud se vám naše blogy líbily, sdílejte je se svými přáteli na Facebooku. A také nás můžete sledovat na Twitteru a Facebooku.

Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit, doplnit nebo inovovat naši práci a zlepšit ji pro vás. Napište nám na e -mail