Call Add-In Macro from VBA

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I created a simple add-in that contains one module (module1) and that module1
contains a simple macro (macro1). I posted that add-in to a file folder on my
desktop and then added it to my Excel Application. So, if I look in the VB
Editor I can see the new .xla as a separate project in every Excel Workbook I
open.

QUESTION:
I can attach that .xla macro1 to a toolbar command icon (and it works). I
can also attach it to a simple Excel 'Button' and that works, too.

But when I insert a VB command button into a worksheet, and then add a
simple procedure to the click event, I cannot get the .xla macro to run. What
is the proper syntax? The following (or any other longer syntax I use)
doesn't work:

Private Sub CommandButton1_Click()
Macro1
End Sub

Thanks,
wcm
 
There are two ways to do this. The first is with the Run method. Use
something like

Application.Run "AddinName.xla!MacroName"

The second is to reference the addin. First of all, you should give your
add-in a meaningful project name. Open your add-in in the VBA Editor, go to
the Tools menu, and choose "VBA Project Properties". In that dialog, change
the name of the project from "VBAProject" to something meaningful. Save the
Add-In.

Then open the workbook from which you want to call the macro in the add-in.
Go to the Tools menu, choose References, and in the list find the Project
Name (not the workbook name) that you change in the previous step. Put a
check next to that project item. Then, once the reference is established
from the workbook to the add-in, you can call the macro in the add-in by
simply using its name.

Macro1


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)
 
Just got my answer from a post just before mine (but didn't see until now),
so here it is, thanks to merjet:

Application.Run "FileName.xla!macro1"
 
Chip:
Thank you. Didn't see your post until today, so would have answered sooner.
This is exactly what I needed, and thanks for two working alternatives.
 
Back
Top