Excel 2000 - Which VBA project is ActiveProject?

  • Thread starter Thread starter Lizzie
  • Start date Start date
L

Lizzie

Hi.

When you open Excel 2000, it opens a default blank
worksheet.
If I then open a worksheet containing VBA code, and run
the code, why does Excel still think that

Application.VBE.ActiveVBProject

is the project belonging to the default blank sheet, and
not the one belonging to the activeworkbook ?

Is this a bug? I can't see how, when code is actually
running, the project running that code is not seen by VBA
as the ActiveProject.
 
Just like you can have calculation going on in a sheet that is not the
activesheet or run code on such sheets/workbook, the activeproject has no
correlation to the code that is running. Use

thisworkbook.VBProject
 
Tom

Thanks for that - I'd found that was the only way around
it - I'm assuming this is a bug ?

Cheers

Lizzie
 
Ahem - ignore previous reply.
I was unsure why it worked ok in Office 97 but not in 2000.
Browsing MS I did find an article
http://support.microsoft.com/?kbid=260993 that suggests
that one should use
Application.VBE.ActiveVBProject.VBComponents if you want
to refer to the project of the active workbook. I'm just
not sure why my workbook is not seen as the active one
during the running of the code.
 
Lizzie,

That KB article is misleading. You should NOT use

Application.VBE.ActiveVBProject.VBComponents

to get the VBComponents of the ActiveWorkbook. Instead, use

ActiveWorkbook.VBProject.VBComponents.

There is no connection between what may be the ActiveWorkbook in Excel and
what may be the ActiveVBProject in the VBA Editor. Excel and VBA don't talk
to each other in this context.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
I gave you the correct answer. It isn't a bug - it is the way it works.
As I said, there is no correlation between the activeproject and the
activeworkbook. I believe the article is refering to the ActiveProject as
the ActiveWorkbook creating your confusion.

You might note, that in the article at the start of the routine, they
specifically name the workbook.

If you want the project of the ActiveWorkbook (as opposed to the workbook
running the code - but the workbook running the code might be the
activeworkbook as well)

ActiveWorkbook.VBProject

if you want the workbook running the code:

ThisWorkbook.VBProject

Your experience proves that the ActiveProject and ActiveWorkbook are not
correlated.
 
Back
Top