Auto_Open over Private Sub Workbook_Open()

O

ordnance1

I am just wondering, is there any advantage to using an Auto_Open module
over just placing that code in a Private Sub Workbook_Open() module under
ThisWorkbook?
 
D

Dave Peterson

I find that explaining how to use Auto_Open is easier than explaining how to use
workbook_open.

But to me, they're pretty much interchangeable.

There are some things (creating an application event, for example) that makes
the workbook_open a more logical choice.

And there are differences in behavior.

If you use one macro to open another workbook, then you have to stop the
workbook_open event from firing (if you don't want it to run)

application.enableevents = false
set wkbk = workbooks.open(filename:=...
application.enableevents = true

On the other hand, if you want to run the auto_open procedure, you'll have to
run it explicitly (using someworkbookthatjustopened.RunAutoMacros
which:=xlAutoOpen.runautomacros

They're kind of opposite in behavior.
 
O

ordnance1

Thanks

Dave Peterson said:
I find that explaining how to use Auto_Open is easier than explaining how
to use
workbook_open.

But to me, they're pretty much interchangeable.

There are some things (creating an application event, for example) that
makes
the workbook_open a more logical choice.

And there are differences in behavior.

If you use one macro to open another workbook, then you have to stop the
workbook_open event from firing (if you don't want it to run)

application.enableevents = false
set wkbk = workbooks.open(filename:=...
application.enableevents = true

On the other hand, if you want to run the auto_open procedure, you'll have
to
run it explicitly (using someworkbookthatjustopened.RunAutoMacros
which:=xlAutoOpen.runautomacros

They're kind of opposite in behavior.
 

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

Top