Custom properties not showing the value when set programmatically

G

Guest

Hi,

When I create a CustomDocumentProperty programmatically and set the
LinkToContent value to True, the value is not available to use
programmatically before I have accessed the menu File->Properties.
To illustrate it I have included some sample code, just create a new
workbook and add a button to it. Paste the following code into the
"ThisWorkbook"

Private Sub Workbook_Open()
ActiveSheet.Range("A1").Value = "Test"
ActiveSheet.Names.Add Name:="TestName", RefersTo:="=Sheet1!$A$1"
ActiveWorkbook.CustomDocumentProperties.Add Name:="CustomProp",
LinkToContent:=True, Type:=msoPropertyTypeString, LinkSource:="TestName"
End Sub

Add the following code into the button event handler
MsgBox ActiveWorkbook.CustomDocumentProperties("CustomProp").Value

Is there a way to get Excel to populate the CustomDocumentProperties
programmatically, We are integrating all our documents with Meridio which is
a EDRM solution and this program use the DocumentProperties when storing the
documents

Regards
Jan Petter
 
P

Peter T

Hi Jon,

I replicate what you describe in XL2000, can't see an obvious solution
without flashing the file properties dialog.

After showing the dialog .Value returns as expected. If I now change the
value in the linked cell A1, .Value returns the old value, need to see the
dialog again for it to be updated.

FWIW, after defining the custom property and not seeing the dialog, the
returned value appears to be 122 bytes of meaningless (to me) numbers.

dim arr() as byte
arr = ActiveWorkbook.CustomDocumentProperties("CustomProp").Value

' arr > 0 to 121

Regards,
Peter T
 
G

Guest

This problem exists in the XL2003 SP2 version also.

We have a lot of users that will use the excel spreadsheets and it can’t bee
expected that they will access the File->properties menu before they save the
workbooks.
So if a solution or workaround for this problem exists I would really like
to hear about it.

Jan Petter
 
N

NickHK

Jan,
Does this help ?

NickHK

Jan Petter said:
This problem exists in the XL2003 SP2 version also.

We have a lot of users that will use the excel spreadsheets and it can't bee
expected that they will access the File->properties menu before they save the
workbooks.
So if a solution or workaround for this problem exists I would really like
to hear about it.

Jan Petter
 
G

Guest

Hi,

Unfortunately the examples in the document do not help. I have changed my
code to reflect the examples and I have tried to use the “DS: OLE Document
Properties 2.0 Object Library" but with no luck

Jan Petter
 
N

NickHK

Jan,
Seems that a "ActiveWorkbook.Save" flushes the value, so it can be correctly
read. Office2K anyway.

NickHK
 
G

Guest

Hi, thanks for taking the time to answer these question

Unfortunately I have to have these Document Properties set before I can do a
“Save†The reason is that we are integrating excel with Meridio which is a
document archive system. Meridio has a plug-in in excel that captures the
“Save†and “Save-As†events and it is this plug-in that pulls out the
Document properties so it can use the as metadata in the Archive system. The
problem is that this happens before the Save happens in excel and therefore
all the properties show with no values in them

Jan Petter
 
N

NickHK

Jan,
How about creating your instance of Excel with Automation, which does not
load add-in, IIRC. Do your custom doc settings, with a save. Load the
Meridio add-in and save again.
Just an idea...
NickHK
 
P

Peter T

As Nick says all appears to update when the file is saved. It also seems
while not saved custom properties can only be read by vba methods or similar
by automation (eg DSOFile dll doesn't seem to work with an open file).

In which case, while the file is open can you simply update the value with
LinkToContent:=False when the named cell value changes. Presumably this
non-linked custom property can then be read immediately by Meridio.

Regards,
Peter T
 
G

Guest

Hi

Yes, I think this is how I have to solve it. It’s not as elegant as “Linked
to Content†properties but it works

Thanks for the help
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top