Ik heb een een template met een autonew macro voor Word2000 daarvoor, die een popup-schermpje geeft waar je alle info kunt invullen. Het maakt gebruik van built-in document properties en custom document properties.
Klik op OK en alle 'velden' worden geupdate. Enige nadeel is dat velden in headers en footers 'niet zichtbaar' worden ge-update; ik ben er nog niet achter hoe dat moet (op een eenvoudige manier, maar kan ermee leven.
code voor het popup-schermpje
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| Sub autonew()
'
' autonew Macro
' Macro created 10/17/01 by sterretje
'
' Get the builtin document properties
DocInfo.MyTitle.Text = ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle)
DocInfo.MySubtitle.Text = ActiveDocument.BuiltInDocumentProperties(wdPropertySubject)
DocInfo.MyAuthor.Text = ActiveDocument.BuiltInDocumentProperties(wdPropertyAuthor)
DocInfo.MySummary.Text = ActiveDocument.BuiltInDocumentProperties(wdPropertyComments)
' get the custom document properties
DocInfo.MyVersion.Text = ActiveDocument.CustomDocumentProperties("Version")
DocInfo.MyClassification.Text = ActiveDocument.CustomDocumentProperties("Classification")
DocInfo.MyDocno.Text = ActiveDocument.CustomDocumentProperties("Documentnumber")
DocInfo.MyDistribution.Text = ActiveDocument.CustomDocumentProperties("Distribution")
' set focus and show dialog
DocInfo.MyTitle.SetFocus
DocInfo.Show
' refresh the document
Selection.WholeStory
Selection.Fields.Update
End Sub |
code voor de knoppen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Private Sub CmdEsc_Click()
' Close the form
DocInfo.Hide
End Sub
Private Sub CmdOK_Click()
' Set the builtin document properties
ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle) = DocInfo.MyTitle.Text
ActiveDocument.BuiltInDocumentProperties(wdPropertySubject) = DocInfo.MySubtitle.Text
ActiveDocument.BuiltInDocumentProperties(wdPropertyAuthor) = DocInfo.MyAuthor.Text
ActiveDocument.BuiltInDocumentProperties(wdPropertyComments) = DocInfo.MySummary.Text
' Set the custom document properties
ActiveDocument.CustomDocumentProperties("Version") = DocInfo.MyVersion.Text
ActiveDocument.CustomDocumentProperties("Classification") = DocInfo.MyClassification.Text
ActiveDocument.CustomDocumentProperties("Documentnumber") = DocInfo.MyDocno.Text
ActiveDocument.CustomDocumentProperties("Distribution") = DocInfo.MyDistribution.Text
' Close the form
DocInfo.Hide |
Het enige dat je nog zelf moet doen is de plaatsen bepalen waar alle velden moeten worden getoond en daar de veldcodes ingooien via
insert->field,
category document information, fieldname docproperty. Het resultaat is bv
code:
1
| { DOCPROPERTY "classification" \*MERGEORMAT } |
voor een custom property met de naam
classification
Wijzigen doe je door de macro opnieuw te starten (of via file->properties, tabblad custom).