Data om arbetsböcker
I detta tips demonstreras hur vi kan erhålla uppgifter om enskilda arbetsböcker, t ex när den skapades och vem som skapade den.
Inläsning av önskade uppgifter sker från egenskapen BuiltinDocumentProperties hos arbetsboken.
I första exemplet visas hur vi kan infoga uppgifter om arbetsboken vid utskrift av ett arbetsblad:
- När den är skapad.
- När den senast är sparad.
- Vem som har skapat den.*
- Vilket företag denna person tillhör. *
- Eventuell hemsida företaget har.*
- Eventuell kommentar. *
* = Dessa uppgifter hämtas från dialogrutan Egenskaper... och nås via kommandot Arkiv | Egenskaper.
Direkthjälpen visar samtliga objekt hos BuiltinDocumentProperties vi har tillgång till.
Noterbart är att "Last Save Time" inte uppdateras automatiskt. När den kopplas till t ex händelsen "Workbook_BeforePrint" sker dock en uppdatering. I XL 2000 och framåt föreligger inte detta problem längre.
Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim dSkapad As Date
Dim dSparadSenast As Date
Dim sForfattare As String
Dim sForetag As String
Dim sHyperLank As String
Dim sKommentarer As String
With ThisWorkbook
dSkapad = .BuiltinDocumentProperties("Creation Date")
dSparadSenast = .BuiltinDocumentProperties("Last Save Time")
sForfattare = .BuiltinDocumentProperties("Author")
sForetag = .BuiltinDocumentProperties("Company")
sHyperLank = .BuiltinDocumentProperties("Hyperlink Base")
sKommentarer = .BuiltinDocumentProperties("Comments")
End With
With ActiveSheet.PageSetup
.LeftHeader = "Skapad: " & dSkapad
.RightHeader = "Skapad av: " & sForfattare & "/" & sForetag
.LeftFooter = "Sparad senast: " & dSparadSenast
.RightFooter = sKommentarer & vbCr & sHyperLank
End With
'Konstanten VBCr ovan infogar en ny rad.
End Sub
I nästa exempel visas hur vi kan använda oss av BuiltinDocumentProperties i funktioner:
Function FÖRFATTARE() As Variant
FÖRFATTARE = Application.Caller.Parent.Parent _
.BuiltinDocumentProperties("Author")
If Err.Number <> 0 Then FÖRFATTARE = CVErr(xlErrNA)
End Function
Function SENASTUTSKRIVEN() As Variant
SENASTUTSKRIVEN = Application.Caller.Parent.Parent _
.BuiltinDocumentProperties("Last Print Date")
If Err.Number <> 0 Then SENASTUTSKRIVEN = CVErr(xlErrNA)
End Function
Function SKAPAD() As Variant
SKAPAD = Application.Caller.Parent.Parent _
.BuiltinDocumentProperties("Creation Date")
If Err.Number <> 0 Then SKAPAD = CVErr(xlErrNA)
End Function