Programatic Reference to Libraries

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Is it possible to set a reference to a library programmatically like I
can do for an add-in?

Thanks in advance for any help.
 
Yes. If you know the name of the library file, you can use code
like the following:

ThisWorkbook.VBProject.References.AddFromFile _
Filename:="H:\whatever\typelib.olb"

If the typelib has been registered, and you know the GUID and
version numbers, you can use code like

ThisWorkbook.VBProject.References.AddFromGuid _
GUID:="{ whatever }", Major:=x, Minor:=y


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
This is an old thread, but here goes ...

Is it possible to retrieve the GUID for a a registered application?

I need to connect a Visio 2003 macro to Excel. Some of the folks that run
the macro have Excel 10, some have Excel 11. I'd rather not count on where
they happened to install the file, so I prefer to use addfromguid. But, I
can't figure out how to get the GUID on some arbitrary PC elsewhere in the
universe.

Is there a function that I can feed a string like "Microsoft Excel 10.0
Object Library" and retrieve a GUID that I can then feed to addfrom guid?

Thanks!
Ed
 
Thanks! That's the clearest description of early and late binding that I've
seen.

After posting the question, I poked around and came up with a hybrid late /
early binding solution that should work on the machines in question - and I
don't have to develop with early binding and muck with the code before I
release it so that late binding works.

If the reference to excel is busted (as seen in the .isbroken property), I
late bind an object to whatever excel is installed on the PC, look at the
..path property of the late bound object, build a likely file name for Excel
including the path, and use .adddFromFile to add the reference. Once it's
added, I can check versions & such for some rassurance that it's going to
work.

If all that fails to work, then it's no more busted than it was to start
with - and I've upheld the "First, do no harm." principal.

I suspect if I understood GUID's better, I could go down the .addFromGUID
path. But that, I think, is for another day.

Ed
 
Chip,

MUST the TypeLib be registered? (I'm assuming not but would like to verify)
Also, if applying this technique to MS Access, should the code be put into a
Class Module or does it not matter?

Further, if a component can be placed in a subfolder and referenced in code,
is there much of a performance improvement to write an installer or otherwise
get the component registered? Recognizing deployment is to varied
environments and versions.

Thank you very much.

Allen B.
 

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

Back
Top