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:

* = 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