Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why doesn't VBE.ActiveCodePane.CodeModule work when the VBE (code window) isn't open?

Tags:

vba

ms-access

Create a form that runs the following code.

MsgBox (VBE.ActiveCodePane.CodeModule)

And this message appears.

enter image description here

Now save, close, and reopen the database, and see this message:

Run-time error '91': Object variable or With block variable not set

enter image description here

If you open the Visual Basic Editor, it runs again. Even if you close the VBE, it still runs.

But when you close the whole application and reopen it, leaving the VBE closed, you get the error.

Why? What's going on here?

like image 836
PBeezy Avatar asked Dec 19 '22 23:12

PBeezy


1 Answers

You reference the active pane object. The object isn't set until a pane gets activated. So before you open the VBE, the object is not set yet. Once you close the VBE, the object remains, so you can still reference it.

To get a handle to the ActiveCodepane object, without opening the VBE, is by activating a VBComponent, like this:

VBE.ActiveVBProject.VBComponents("Module1").Activate

You can activate any VBComponent like this.

like image 144
Bas Verlaat Avatar answered May 13 '23 23:05

Bas Verlaat