ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Late binding with VBIDE (https://www.excelbanter.com/excel-programming/311489-late-binding-vbide.html)

Tony Seiscons

Late binding with VBIDE
 
Is late binding possible with the VBIDE. For example I'd like to be able
to:

Dim MyObj as Object

and then

Set MyObj as New CreateObject("VBIDE.VBComponent")

rather than Dim MyObj as New VBIDE.VBComponent

but I get Run time error '429', ActiveX component can't create object, even
if I have a reverence set to Microsoft Visual Basic for Applications
Extensibility 5.3.

I can do this with the Scripting.FileSystemObject. Why not with this?
Does this mean that I will either have to instruct a user to add the
reference or use an installer to do it via the registry if I want to use
these functions on distributed software.

I found a discussion from 2002-12-09 which Chip Peterson and Rob Bovey
describe how late and early binding work however it doesn't explain the
above.


Tony




Tony Seiscons

Late binding with VBIDE
 
Just answered my own question again (More searches in the news group!)
I should be doing this

Dim MyObj as Object

And then

Set MyObj = ThisWorkbook.VBProject.VBComponents

and I also note that

Set MyObj = CreateObject("VBIDE.VBComponent")

I was using

Set MyObj as New CreateObject("VBIDE.VBComponent")

which doesn't work

As I said below I have found a lot of info about early and late binding in
another discussion so I'll study that to try to understand the differences
between the various syntax.

Tony



Dim
"Tony Seiscons" wrote in message
...
Is late binding possible with the VBIDE. For example I'd like to be able
to:

Dim MyObj as Object

and then

Set MyObj as New CreateObject("VBIDE.VBComponent")

rather than Dim MyObj as New VBIDE.VBComponent

but I get Run time error '429', ActiveX component can't create object,

even
if I have a reverence set to Microsoft Visual Basic for Applications
Extensibility 5.3.

I can do this with the Scripting.FileSystemObject. Why not with this?
Does this mean that I will either have to instruct a user to add the
reference or use an installer to do it via the registry if I want to use
these functions on distributed software.

I found a discussion from 2002-12-09 which Chip Peterson and Rob Bovey
describe how late and early binding work however it doesn't explain the
above.


Tony






Bob Phillips[_6_]

Late binding with VBIDE
 
You don't say what you want to do with the component, but this shows how to
delete a module with late-binding

Dim VBComp As Object

Set VBComp = ThisWorkbook.VBProject.vbcomponents("Module2")
ThisWorkbook.VBProject.vbcomponents.Remove VBComp

--

HTH

RP

"Tony Seiscons" wrote in message
...
Is late binding possible with the VBIDE. For example I'd like to be able
to:

Dim MyObj as Object

and then

Set MyObj as New CreateObject("VBIDE.VBComponent")

rather than Dim MyObj as New VBIDE.VBComponent

but I get Run time error '429', ActiveX component can't create object,

even
if I have a reverence set to Microsoft Visual Basic for Applications
Extensibility 5.3.

I can do this with the Scripting.FileSystemObject. Why not with this?
Does this mean that I will either have to instruct a user to add the
reference or use an installer to do it via the registry if I want to use
these functions on distributed software.

I found a discussion from 2002-12-09 which Chip Peterson and Rob Bovey
describe how late and early binding work however it doesn't explain the
above.


Tony







All times are GMT +1. The time now is 05:06 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com