Automatisches Einfügen eines Eigenschaftsfelds in Word mit VBA

Wie kann ich mithilfe von VBA ein Eigenschaftsfeld automatisch in Word einfügen?

Uhr
Um mithilfe von VBA ein Eigenschaftsfeld automatisch in Word einzufügen gibt es mehrere Möglichkeiten je nachdem welche spezifischen Eigenschaften oder Felder du automatisieren möchtest. Hier sind einige Optionen:

1. Automatisches Einfügen aller Eigenschaften:
Mit dem folgenden Beispielcode kannst du alle Felder der eingebauten Dokumenteigenschaften ans Ende deines Word-Dokuments schreiben:

```vba
Option Explicit
Sub Property_Read()
Dim MyProperty As Object
Dim MyRange As Range
Set MyRange = ActiveDocument.Content
MyRange.Collapse Direction:=wdCollapseEnd
For Each MyProperty In ActiveDocument.BuiltInDocumentProperties
With MyRange.InsertAfter
MyProperty.Name & "= "
On Error Resume Next
.InsertAfter MyProperty.Value
End With
Next
End Sub
```

Dieser Code durchläuft alle eingebauten Dokumenteigenschaften und fügt sie ans Ende des Dokuments ein.

2. Automatisches Einfügen ausgewählter Eigenschaften:
Wenn du nur bestimmte Eigenschaften automatisch einfügen möchtest, kannst du die entsprechenden Eigenschaften auswählen, ebenso wie im folgenden Code-Beispiel gezeigt:

```vba
Option explicit
Sub some_Property()
Dim MyProperty As Object
Dim MyRange As Range
Set MyRange = ActiveDocument.Content
MyRange.Collapse Direction:=wdCollapseEnd
For Each MyProperty In ActiveDocument.BuiltInDocumentProperties
With MyRange
On Error Resume Next
Select Case MyProperty.Name
Case "Title"
.InsertAfter MyProperty.Name & "= "
.InsertAfter MyProperty.Value
Case "Subject"
.InsertAfter MyProperty.Name & "= "
.InsertAfter MyProperty.Value
' Weitere Cases für andere Eigenschaften hinzufügen
End Select
End With
Next
End Sub
```

Dieser Code fügt nur die ausgewählten Eigenschaften (wie Titel, Betreff und-so-weiter…) automatisch in das Dokument ein.

3. Automatisches Einfügen benutzerdefinierter Eigenschaften:
Um benutzerdefinierte Eigenschaften automatisch einzufügen, kannst du den folgenden Code verwenden:

```vba
Sub Custom_Change()
Dim MyRange As Range
Dim MyProperty As Object
Dim I As Long
Set MyRange = ActiveDocument.Content
MyRange.Collapse Direction:=wdCollapseEnd
With ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="Delete"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
For Each MyProperty In ActiveDocument.CustomDocumentProperties
With MyRange
.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"DOKEIGENSCHAFT " & MyProperty.Name
' Weitere Anpassungen für benutzerdefinierte Eigenschaften hinzufügen
End With
Next
Selection.GoTo What:=wdGoToBookmark, Name:="Delete"
Selection.MoveDown Unit:=wdLine, Count:=I, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=I
End Sub
```

Dieser Code fügt benutzerdefinierte Eigenschaften automatisch in das Word-Dokument ein.

Es ist zu beachten, dass die genauen Anpassungen je nach den spezifischen Anforderungen und Eigenschaften des Word-Dokuments vorgenommen werden müssen. Zudem kann der VBA Makrorecorder hilfreich sein um die manuellen Aktionen aufzuzeichnen und den generierten Code zu überprüfen.






Anzeige