mfg
AlexK
WinXP, Word2000
> mit welchem Befehl kann ich ein Feld, welches ich über die
> Datei-Eigenschaften belegt habe und mit
> {DOCPROPERTY "Name"\*MERGEFORMAT} in
> das Dokument eingefügt habe, in VBA auslesen. [...]
Du musst dich nicht über die Felder hermachen um den Wert zu erfahren,
sondern über die 'BuiltInDocumentProperties'-Auflistung. Dort findest du den
Wert viel schneller und sicherer.
Zum Beilspiel so:
' ---------- Start Code ----------
Option Explicit
Public Const tgBUILTIN_PROPERIES As Boolean = True
Public Const tgCUSTOM_PROPERIES As Boolean = False
Sub Demo()
Documents.Add
ActiveDocument.BuiltInDocumentProperties(wdPropertySubject).Value =
"DasThema"
ActiveDocument.CustomDocumentProperties.Add Name:="Test", Value:="Hallo
Welt", LinkToContent:=False, Type:=msoPropertyTypeString
MsgBox funcGetDokumentEigenschaften(tgBUILTIN_PROPERIES, "Subject")
MsgBox funcGetDokumentEigenschaften(tgBUILTIN_PROPERIES,
wdPropertySubject)
MsgBox funcGetDokumentEigenschaften(tgCUSTOM_PROPERIES, "Test")
End Sub
Public Function funcGetDokumentEigenschaften(ByVal BTyp As Boolean, ByVal
VFeldBezeichner As Variant) As Variant
Dim vWert As Variant
Dim oDokumentEigenschaft As DocumentProperty
On Error Resume Next
funcGetDokumentEigenschaften = ""
If (BTyp = tgBUILTIN_PROPERIES) Then
If IsNumeric(VFeldBezeichner) Then
vWert =
ActiveDocument.BuiltInDocumentProperties(VFeldBezeichner).Value
Else
For Each oDokumentEigenschaft In
ActiveDocument.BuiltInDocumentProperties
If UCase$(oDokumentEigenschaft.Name) = UCase$(VFeldBezeichner)
Then
vWert = oDokumentEigenschaft.Value
Exit For
End If
Next
End If
Else
For Each oDokumentEigenschaft In
ActiveDocument.CustomDocumentProperties
If UCase$(oDokumentEigenschaft.Name) = UCase$(VFeldBezeichner) Then
vWert = oDokumentEigenschaft.Value
Exit For
End If
Next
End If 'BTyp = tgBUILTIN_PROPERIES
On Error GoTo 0
'Deutsche (Wahr, Falsch) String-Parameter in englische Boolean-Werte (True,
False) übersetzen.
If LCase$(vWert) = LCase$("Wahr") Then vWert = True
If LCase$(vWert) = LCase$("Falsch") Then vWert = False
If LCase$(vWert) = LCase$("True") Then vWert = True
If LCase$(vWert) = LCase$("False") Then vWert = False
funcGetDokumentEigenschaften = vWert
End Function
' ---------- Ende Code ----------
--
Thomas Gahler
MVP für WordVBA
- Windows XP, Office XP (SP2)
das ist die BuiltinDocumentProperties des Dokuments.
Gruß Herbert
Alex Ketzler-Mainz <ne...@alexk-mainz.de> schrieb in im Newsbeitrag:
#8Ggkrst...@TK2MSFTNGP12.phx.gbl...