View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default Late Binding Problem between Excel and Project

Ah, afraid I wrongly assumed everyone had it!

Not sure how I got mine, with VB6 perhaps but I think I've had it for ever.

I just looked at Chip's. It looks only at XL.


I've just had a quick look too. I think merely need to change -
'ThisWorkbook.VBProject.References("EXCEL").FullPa th'
to the path of the *.olb in question

eg, as in quick demo I posted, mine for Word2K was
"C:\Program Files\Microsoft Office2K\Office\Msword9.olb"

Regards,
Peter T

"Jim Thomlinson" wrote in message
...
That is the reference that you need (TLBINFO32.DLL). If I am correct that

is
not a standard DLL that everyone is going to have. I do know that it comes
with VB6 (as per this article http://support.microsoft.com/kb/239930). My
code is basically the same as that except that I have listed all of the

paths
and file nems for the standard office applications to make it easier.
--
HTH...

Jim Thomlinson


"Peter T" wrote:

Hi Jim,

Earlier you said yours required a VB6 dll, what might that be and why

not
something like this in VBA

Sub testTLI()
' Tools References
' scroll down and check "TypeLibInformation"
' if not found Browse to TLBINFO32.DLL
Dim sPath As String
Dim sLib As String
Dim sFile As String
Dim i As Long

Dim tli As TypeLibInfo
Dim ci As ConstantInfo
Dim mbr As MemberInfo

'change to appropriate Office path
sPath = "C:\Program Files\Microsoft Office2K\Office\"
sLib = "Msword9.olb" 'Word 2000 library
' sLib = "Excel9.olb" 'XL2K

Set tli = TypeLibInfoFromFile(sPath & sLib)

For Each ci In tli.Constants
For Each mbr In ci.Members
i = i + 1
Cells(i, 1) = mbr.Name
Cells(i, 2) = mbr.Value
Next mbr
Next ci

End Sub

Regards,
Peter T

"Jim Thomlinson" wrote in

message
...
I just looked at Chip's. It looks only at XL. Using mine you select

the
app
and version and it returns the constants... Mine needs a little more

work
as
it can return duplicates but the jist of it is there...
--
HTH...

Jim Thomlinson


"Dave Peterson" wrote:

Just to add...

Chip Pearson has one for excel (I don't know if it works in

different
office
applications, though).

http://www.cpearson.com/excel/download.htm
Look for XLConst


Jim Thomlinson wrote:

I have a spreadsheet that reads the constant values out of XL,

Word
and other
MS apps. Regretably I do not have a link to MSProject. It is

based on
http://support.microsoft.com/kb/239930
I can send you a copy. You need the dll from VB6 to make it work.

--
HTH...

Jim Thomlinson

"Dave Peterson" wrote:

And to add to Jim's response....

I don't use Project, but when I need the value of an MSWord

constant, I'll open
MSWord.

Go into its VBE, show the immediate window and type this:
?wdMarkupRectangle
and see this returned:
2

If I have lots to look up, I'll go into the Object browser and

search.


JJ wrote:

I have an Excel file that imports data from a Project file.

However,
the users could potentially be on two different versions of

Project.
With early binding this created a problem for those who used

the
earlier version of Project. Therefore, I removed the reference

and
used late binding.

This now created a problem in a function where I used

constants
defined only in Project, but if there reference doesn't exist

then
the
constants mean nothing. The function relies on these constants

for
it
to work.

Questions:
1) I want to continue to use the late binding method, but how

do I
allow my function to access the Project constants?
2) Is it possible to detect the version of Project that a user

has
installed and programmatically create the reference?

Thanks in advance!

--

Dave Peterson


--

Dave Peterson