RSS

Makro: Tilføj tekst til tekstfil

På arbejde vedligeholdte jeg en gang tre regneark (på et fællesdrev) med stopstatistik. To af regnearkene havde de samme data, blot præsenteret forskelligt, og jeg bryder mig ikke om dobbeltarbejde.

Jeg havde også en mistanke om, at ingen brugte det tredje regneark, og for at be- eller afkræfte dette besluttede jeg at logge, hvis en anden bruger end mig selv åbnede regnearket.

Efter rimelig lang tid var der ingen logninger overhovedet. Min mistanke var bekræftet, så jeg fortalte chefen om loggen, og at jeg stoppede med at vedligeholde den tredje statistik.

Han grinede og sagde okay. Det havde jo også set underligt ud, hvis han havde insisteret på, at jeg skulle spilde min tid.

Herunder er den simple makro som gør arbejdet ved at føje tekst til en tekstfil. For at virke, skal tekstfilen "log.txt" ligge i samme mappe som regnearket, men det er nemt at ændre.

For at kopiere koden markerer du den med musen, trykker CTRL+C og sætter den ind i et VBA-modul med CTRL+V.


Sub auto_open()
'Kører, når regnearket åbnes.
'Kald proceduren AppendToTextFile eller
'en anden procedure.
AppendToTextFile
End Sub

Sub AppendToTextFile()
'Åbner en tekstfil, hvis brugernavnet er forskelligt
'fra dit eller Xxx, og tilføjer en ny linje med dato,
'tid og brugernavn. På den måde kan du logge andre
'brugeres adgang til et regneark, men brug den med
'omtanke!

Dim fs, f
Dim sPath As String

'Udskift "Eric Bentzen" med dit eget brugernavn.
If Application.UserName = "Eric Bentzen" Then Exit Sub
      
On Error Resume Next

'Antager at logfilen ligger i samme mappe som
'regnearket. Det og/eller logfilens navn kan
'nemt ændres.
sPath = ThisWorkbook.Path & "\log.txt"

Set fs = CreateObject("Scripting.FileSystemObject")

'Åbner filen - tallet "8" er en konstant
'for at tilføje tekst.
Set f = fs.OpenTextFile(sPath, 8)

'Indsæt linjeskift, dato, tid og brugernavn.
f.Write vbNewLine & Now & " " & Application.UserName

'Luk filen.
f.Close
   
End Sub


Relateret: