View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Rob Bovey Rob Bovey is offline
external usenet poster
 
Posts: 811
Default Setting OnAction of custom menu item?

<<It's a performance thing I guess.

Hi Bob,

Actually it's a safety thing. If you're automating Excel on some
arbitrary user's desktop you don't know what the programs they're loading on
startup may do. If your program was using the default invisible instance of
Excel and one of the user's startup programs ran code that required UI
interaction (like clicking OK on a message box or something) you'd be locked
up with nowhere to go. There are lots of other scenarios where arbitrary
user applications loading on startup could really hose an automation
session, so MS designed it this way to avoid any of that from happening.

--
Rob Bovey, MCSE, MCSD, Excel MVP
Application Professionals
http://www.appspro.com/

* Please post all replies to this newsgroup *
* I delete all unsolicited e-mail responses *


"Bob Phillips" wrote in message
...
Ed,

When you startup Excel from Automation, it will not load any files in
XLStart, so no Personal.xls, or anything else there. Same applies to
installed add-ins. It's a performance thing I guess.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Ed" wrote in message
...
Well, I was trying to present a workbook with no code in it. But I

think
I
can get away with some. Right now, though, I set OnAction in the Visual
Basic app as
.OnAction = "objWkbk.Sheet1!GetTIR"
where "objWkbk" is the Excel file opened by the VB app. But when I run

the
macro in the workbook, I get the error "Can't find "objWkbk.Sheet1.xls".

The other thing I noticed is that, unlike double-clicking the icon on my
desktop, when the VB app opens this file, my Personal.xls doesn't open.
When I click a custom button tied to a macro in Personal, Personal has

to
open and then the macro runs. But this macro is in this workbook -

still
I
wonder if something isn't messing with my VBA functions.

Ed

"Bob Phillips" wrote in message
...
You could copy the macro into the workbook.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Ed" wrote in message
...
Thanks, Bob. Time for Plan B.

Ed

"Bob Phillips" wrote in message
...
Ed,

It can't refer back to a VB App. Think about it, the VB app will

run,
create
the toolbar and then finish. The button could be clicked at any

time

after,
and there is no app to call back into.

You can run a macro in the same workbook, another workbook, and

you
could
even have a macro that is simply a bridge into a DLL if you so

wanted,
but
not your parent app as far as I can see.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Ed" wrote in message
...
I'm using a Visual Basic app to open a workbook and set a custom

menu
in
it.
It works okay, as far as I have it (thanks to much help from the

Excel
and
VB NG gurus!). The idea driving this is to remove all code from

the
workbook - it's causing errors for my users.

Now I need to set the OnAction property of my menu items. Must
OnAction
always refer to a macro in the workbook? Can I set OnAction to

refer
back
to a sub in the VB app? If this is possible, how would this

look
when
coded?

Ed