![]() |
|
#1
|
|||
|
|||
![]()
Hi
I am trying to add new document properties a new document is created off of a template, however I get run-time error "Invalid procedure call or argument". Just wondering if anyone knows where I am going wrong Code:
Dim APS_ContractNumber As Boolean Dim APS_DocumentCode As Boolean Dim APS_DocumentNumber As Boolean Dim APS_DocumentTitle As Boolean Dim APS_DocumentType As Boolean Dim APS_Revision As Boolean Dim APS_RevisionDate As Boolean Dim APS_SubjectCode As Boolean Dim APS_UniqueIdentifier As Boolean Private Sub Document_New() With ActiveDocument.CustomDocumentProperties .Add Name:="APS_ContractNumber", _ LinkToContent:=True, _ Type:=msoPropertyTypeString, _ Value:="[Contract Number]" .Add Name:="APS_DocumentCode", _ LinkToContent:=False, _ Type:=msoPropertyTypeNumber, _ Value:="[Document Code]" .Add Name:="APS_DocumentNumber", _ LinkToContent:=False, _ Type:=msoPropertyTypeString, _ Value:="[Document Number]" .Add Name:="APS_DocumentTitle", _ LinkToContent:=False, _ Type:=msoPropertyTypeString, _ Value:="[Document Title]" .Add Name:="APS_DocumentType", _ LinkToContent:=False, _ Type:=msoPropertyTypeString, _ Value:="[DDD]" .Add Name:="APS_Revision", _ LinkToContent:=False, _ Type:=msoPropertyTypeString, _ Value:="[RR]" .Add Name:="APS_RevisionDate", _ LinkToContent:=False, _ Type:=msoPropertyTypeDate, _ Value:="[01/01/2000]" .Add Name:="APS_SubjectCode", _ LinkToContent:=False, _ Type:=msoPropertyTypeString, _ Value:="[Subject Code]" .Add Name:="APS_UniqueIdentifier", _ LinkToContent:=False, _ Type:=msoPropertyTypeString, _ Value:="[XXX]" End With End Sub |
#2
|
||||
|
||||
![]()
The first one fails because you can't link to content without telling it which content. Change that to False. It may also fail if the CustomDocumentProperty already exists so you should probably be testing that before adding.
The second one will fail because you told it the value would be a number but you provided a string. You will also find the date format won't work because you provided a string rather than a valid date. For that one, try Value:=#1/1/2000#
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#3
|
||||
|
||||
![]()
The DIM statements are not required for the macro. As for the rest,you can't put a date in a date field that is not a date, nor a number in a number field that is not a number.
I would suggest using error trapping to avoid crashes while testing the code. Code:
Option Explicit Private Sub Document_New() AddProp "APS_ContractNumber", False, 4, "[Contract Number]" AddProp "APS_DocumentCode", False, 4, "[Document Code]" AddProp "APS_DocumentNumber", False, 4, "[Document Number]" AddProp "APS_DocumentTitle", False, 4, "[Document Title]" AddProp "APS_DocumentType", False, 4, "[Document Type]" AddProp "APS_Revision", False, 4, "[RR]" AddProp "APS_RevisionDate", False, 3, "01/01/2000" AddProp "APS_SubjectCode", False, 4, "[Subject Code]" AddProp "APS_UniqueIdentifier", False, 4, "[XXX]" End Sub Private Sub AddProp(sName As String, bLink As Boolean, lType As Long, sValue As String) Dim oProp As DocumentProperty With ActiveDocument For Each oProp In .CustomDocumentProperties If oProp.Name = sName Then oProp.Value = sValue GoTo lbl_Exit End If Next oProp .CustomDocumentProperties.Add _ Name:=sName, _ LinkToContent:=bLink, _ Type:=lType, _ Value:=sValue End With lbl_Exit: Set oProp = Nothing Exit Sub End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#4
|
|||
|
|||
![]()
Thank you gmayor
Its all fixed now thanks to your help. Cheers Nicole |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
kschmidt | Word VBA | 7 | 02-04-2019 03:09 PM |
Add custom doc properties in "Doc properties control" | eazysnatch | Word | 2 | 09-13-2017 08:08 PM |
![]() |
thedr9wningman | Word VBA | 3 | 01-20-2014 05:56 PM |
Custom Properties | b-baker | Word | 1 | 03-01-2012 01:15 AM |
![]() |
NicBodkin | Word | 8 | 05-05-2011 09:09 AM |