Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Docproperty Felder unter VBA ansprechen bzw auslesen

239 views
Skip to first unread message

Alex Ketzler-Mainz

unread,
Nov 29, 2003, 5:49:59 PM11/29/03
to
Hi,
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. Sinn soll es sein, das ich
aufgrund des Namens über ein VBA Makro verschiedene Ereignisse selektieren
will. Mit den Eigenschaften muss ich arbeiten, da ich diese von Access aus
belegen lasse um einen einzigen Datensatz ausdrucken zu lassen.


mfg

AlexK

WinXP, Word2000

Thomas Gahler

unread,
Nov 30, 2003, 8:48:48 AM11/30/03
to
Hallo Alex


> 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)


Herbert

unread,
Dec 2, 2003, 3:43:24 PM12/2/03
to
Hallo Alex,

das ist die BuiltinDocumentProperties des Dokuments.

Gruß Herbert


Alex Ketzler-Mainz <ne...@alexk-mainz.de> schrieb in im Newsbeitrag:
#8Ggkrst...@TK2MSFTNGP12.phx.gbl...

0 new messages