Bra Utbildning AB

 

<-- Back
VBA & Objektmodeller
Arbeta med text
Bokmärken
Range
Fält
Formulärfält
Autotext
Doc var & Doc Prop
Words kommandon
Words dialogrutor
Automation
Externa Databaser

Arbeta med dokumentegenskaper och dokumentvariabler


Dokumentvariabler

Uppdatera variabel med värde och skapa variabeln om den inte existerar
ActiveDocument.Variables("DoldInfo").Value = "valfri text"

Kontrollera om en viss dokumentvariabel existerar

If FinnsDocVariabeln("VariabelnsNamn") = True Then
  
MsgBox "Visst finns den!"
Else
   MsgBox "Den finns inte!"
End If

'=============================================
'Anrop från proceduren ovan
Private Function FinnsDocVariabeln(VarName As String) As Boolean
On Error GoTo ErrorHandler
   FinnsDocVariabeln = _
      (VarName = _
      ActiveDocument.Variables(VarName).Name)

'Ordinarie utgång
TheExit:
Exit Function
'---------------------------
ErrorHandler:
Err.Clear
Resume TheExit
End Function

Dokumentegenskaper

Enkel uppdatering av dokumentegenskap. Inte helt stabil/säker uppdatering.
ActiveDocument.BuiltInDocumentProperties(wdPropertyAuthor) = "Ditt namn här"

Säker uppdatering av dokumentegenskaper
With Dialogs(wdDialogFileSummaryInfo)
   .Title = "Dokumentets titel"
   .Author = "Ditt namn här"
   .Execute
End With

Kontrollera om dokumentegenskap finns och om den är inbyggd, egen eller om den saknas och i så fall generera egenskap med angivet namn. Består av 3 procedurer i exemplet; 1 subrutin och 2 functions.

Sub KontrolleraProperty()
Dim oDoc As Document
Dim strControl As String
Dim strValue As String

Set oDoc = ActiveDocument

strControl = "ClientBirthDay"
strValue = "June 1"

If FinnsBuiltInProp(strControl) = True Then
      oDoc.BuiltInDocumentProperties(strControl) = strValue
Else
   If FinnsCustomProp(strControl) = False Then
      oDoc.CustomDocumentProperties.Add _
         Name:=strControl, _
         LinkToContent:=False, _
         Value:="<empty>", _
         Type:=msoPropertyTypeString
   End If

   If Not strValue = "" Then
      oDoc.CustomDocumentProperties(strControl).Value = _
         strValue
   End If
End If
End Sub


'=============================================
'Anrop från sub ovan

Private Function FinnsBuiltInProp(DocPropName As String) As Boolean
On Error GoTo ErrorHandler

   If StrComp(ActiveDocument.BuiltInDocumentProperties(DocPropName).Name, _
      DocPropName, vbTextCompare) = 0 Then
      FinnsBuiltInProp = True
End If

'Ordinarie utgång
TheExit:
Exit Function
'------------------------
ErrorHandler:
Err.Clear
Resume TheExit
End Function

'=============================================
'Anrop från sub ovan
Private Function FinnsCustomProp(DocPropName As String) As Boolean
On Error GoTo ErrorHandler
   FinnsCustomProp = _
      (DocPropName = _
      ActiveDocument.CustomDocumentProperties(DocPropName).Name)

'Ordinarie utgång
TheExit:
Exit Function
'---------------------------
ErrorHandler:
Err.Clear
Resume TheExit
End Function