Installing an Excel Add-In
by Jon Peltier
Saturday, June 7th, 2008
Peltier Technical Services, Inc., Copyright © 2010.
Licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
A lot of Excel procedures are packaged in Add-Ins. An Add-In is basically a workbook containing some code, that has some other unique properties. The workbook is invisible. The workbook can be installed, which means it opens when Excel opens, so that its functionality is always available.
Installing an Add-In is really not complicated. If it came in a zip file, unzip it into an appropriate directory. You can use any directory you want. Excel has one or more default add-ins directories, depending on version:
C:\Program Files\Microsoft Office\OfficeXX\Library
where XX is 12 for Office 2007, 11 for 2003, and so forth, and
C:\Documents and Settings\UserName\Application Data\Microsoft\AddIns
where UserName is the user’s Windows account name.
With Excel running and any workbook open, go to Tools menu and choose Add-Ins. You will see the following dialog, which lists the add-ins Excel thinks are available. Any installed add-ins are checked.

If the add-in is saved in one of the default add-ins directories cited above, the add-in will be listed in the dialog, and you can check it to install it. If it isn’t listed, simply browse to select the add-in, and it will be added to the list and checked.

Below the list of add-ins, you will see the name and description of the selected add-in. Click the Okay button, and the add-in is installed and ready to go.
To uninstall an add-in, simply open the Add-Ins dialog and uncheck the add-in.
Related Posts:
- Installing an Add-In in Excel 2007
- Excel Templates Demystified
- Microsoft Chart Advisor
- Deming Regression Utility
- Using RefEdit Controls in Excel Dialogs
- Unspecified but Painfully Frustrating Error
- Build an Excel Add-In 6 – Interface for 2003
- Improved Macro Security Warning in Excel 2010
- Interesting Links for 17 April 2009
- Get Open or Save-As Filename
Posted: Saturday, June 7th, 2008 under VBA.
Comments: 32
Comments
Comment from Marti Rosas
Time: Monday, June 9, 2008, 10:25 am
Dear Jon,
thank you very much for this esplendid and impressive web site you have created.
It is awesome indeed! I am quite new at excel macros and VBA (after some time dedicated to C++ and other environments), but I have seen that for the students this is an easier way to get into grips with programming. I have discovered the Solver Add-in not so long ago but I have found something weird I think. I follow the instructions that you give at
http://peltiertech.com/Excel/SolverVBA.html
but when you say “[...] In addition, the Solver library will be accessible through the VB Editor’s Object Browser (right), and you will have the benefit of Intellisense (below) while editing code that uses members of the Solver library” , I can see the classes, same as yours, but not the “Members of the VBA-Functions”, i.e. the functions SolverOk, SolverAdd, etc. Do you have any idea why is this so? Thank you very much for your time and congratulations again for the site!
Best wishes from Barcelona (Spain).
Comment from Jon Peltier
Time: Monday, June 9, 2008, 10:43 am
Hi Marti – Thanks for your note.
When you set a reference to SOLVER in a project, and the Object Browser is open, select the SOLVER library in the top dropdown of the Object Browser. This displays a list of only the SOLVER classes in the left hand list. VBA_Functions should be the last one listed. Selecting that class will show the functions in the list of members.

Comment from Marti Rosas
Time: Monday, June 9, 2008, 11:39 am
Hi Jon,
that is precisely the problem: when I select the SOLVER library in the top dropdown of the Object Browser it displays the list of the SOLVER classes in the left hand list and I can see the VBA_Functions at the end. But although I select that class, it does NOT show the functions in the list of Members. Consequently VB do not recognize any procedure related to Solver when I call it from a Macro. Nonetheless, I have just discovered something interesting (and even more strange for an absolute begginner like me!). The class Solver4 contains the same members as VBA_Functions though with another name: i.e., SolvAdd, SolvChange, and so on. When I use this “short-named” members, Solver can be called from my macro though when it finishes (after a SolvSolve instruction) there appears a dialog box that begins with
“Cell:[Solver.xla]Ecel4Functions!A1
Formula:
Start of solver cell.
[...]
asking you to continue, to halt, to do it step by step, etc. When I let it to continue and it finishes to calculate, the final Solver dialog box appears (that one with the options of answer, sensitivity, etc. reports) and everything finishes normally.;(
Anyway Jon: I do not want to bother you anymore. If it happens that you encounter the clue, I will be glad and thankfull! I will keep on
investigating what the h*ll is going on and if I find something I will tell you anyay just for you to know!
Thanks very much again for everything and your quick answer!
Comment from Jon Peltier
Time: Monday, June 9, 2008, 11:47 am
Hmmm, looks like a defect in your version of SOLVER. What version of Excel, what localization?
You can show or hide the dialogs you describe by setting the parameters of the VBA_Functions you call. I notice the functions in Solver4 have the same arguments as those in VBA_Functions. presumably the Solver4 functions behave the same way, so check my links for help on the VBA functions and their parameters, if I don’t have enough details in my web page.
Pingback from Tidy Up Your Charts « Contextures Blog
Time: Friday, June 20, 2008, 2:21 pm
[...] you can download and install Jon Peltier’s free Align Chart Dimensions utility. There are installation instructions on Jon’s [...]
Comment from Butch Cooper
Time: Sunday, September 14, 2008, 3:09 pm
Not really a comment, but a question.
I have Office 2003 installed and the forms I use for work is in Excel and we added an add-in to update a couple of forms.
When we added the add-in originally, it stay checked. BUT, the last few months, every time we open the form, we MUST go back and make sure the add-in is checked.
It never stays checked.
It USED to, but it no longer does.
Is there an easy way to fix my problem or will I just “ACCIDENTALLY” have to drop my computer in the ocean?
Any help on this would be FANTASTIC!
Comment from Jon Peltier
Time: Sunday, September 14, 2008, 6:04 pm
Butch -
This behavior points to one of two things that I can think of.
1. Excel isn’t shutting down properly, so it doesn’t remember add-ins that were installed during the session. If you manually customize the interface (add a custom button), does the customization appear next time you start up Excel?
2. There is some kind of IT policy that uninstalls some or all add-ins. If it happens on multiple computers, I would suspect something like this.
It might be something completely unrelated.
Comment from Butch Cooper
Time: Monday, September 15, 2008, 2:45 am
So is there a way to go about fixing it, or do I just keep applying the add in every time?
Comment from Jon Peltier
Time: Monday, September 15, 2008, 6:29 am
Butch -
Depends what the problem is. Shutdown errors are tricky to fix, IT problems are even more tricky, and it’s hard debugging computer problems via WordPress.
Comment from Rich Gautier
Time: Tuesday, May 5, 2009, 1:18 pm
Hi:
I developed an Add-in (xlam) for Excel 2007 for work that has some custom functions and custom macros. I found how to add custom Ribbon panels for my project, but I’d like the functions I’ve built-in to show up in Intellisense. I was browsing the web and noticed you say your add-in is available through Intellisense. Can you tell me how you exposed your Add-in functions to Intellisense?
Thanks,
Rich
Comment from Jon Peltier
Time: Tuesday, May 5, 2009, 3:56 pm
Hi Rich -
There are two steps. First, the procedures are declared as Public Subs or Functions. Second, in the VB project that accesses these procedures, I have set a reference to the add-in containing the procedures: VB Editor’s Tools menu > References. This is where having a unique project name is helpful, so you can recognize your add-in in the list. Otherwise you will see a handful of items names VBProject.
Comment from Igor
Time: Thursday, November 19, 2009, 9:13 pm
Hi,
How can I intercept from Add-In build in event- like FileSave, so I can trigger some custom handling for that event every time for any excel workbook opened
Thanks,
Comment from Jon Peltier
Time: Thursday, November 19, 2009, 11:00 pm
You need to insert a class module into the add-in, and declare an Excel Application variable with events. In the class module you can then add events like workbook_beforesave. Before using the class you have to instantiate the application variable.
This topic is covered in the “Application Events In An New Class Module” section of Chip Pearson’s Application Events page.
Comment from Igor
Time: Friday, November 20, 2009, 1:40 pm
Thank You Jon,
Looks like it is solution I was looking for
Comment from Jim
Time: Saturday, January 30, 2010, 1:19 pm
Hi Jon, I had an excel guru from work develop a macro file that I add in to co-workers computers. Some of them have Excel 2007 and some have Excel 2003. The macro was created in Excel 2003. He used coding for both versions to make the macro work. I am having one problem with one computer where when trying to use the Tools Add-Ins dialogue box, it won’t recognize the .xla file type and gives me an error. What could be the problem with this one computer?
Comment from Jon Peltier
Time: Saturday, January 30, 2010, 2:36 pm
Jim – What does “doesn’t recognize the file type” mean? Can you describe the symptoms? Also, what is the error message (and not just the error number)?
Comment from Jim
Time: Saturday, January 30, 2010, 4:45 pm
It tells me that .xla is not a valid filetype for excel. I can’t remember the rest of the error message or the number, since it is not my computer that it happens on, I can’t duplicate it at this time.
Comment from Jon Peltier
Time: Saturday, January 30, 2010, 7:26 pm
Jom – That’s bizarre. Was it Excel 2003 or 2007 that experienced the error?
Comment from Jim
Time: Sunday, January 31, 2010, 2:31 am
it was excel 2003 and only one istance of 2003. other computers with 2003 can rou the macro. he even has another .xla on the same machine.
Comment from Michael Kerner
Time: Monday, March 8, 2010, 8:02 pm
Hello,
I’m in need of a radar graph utility / add-in for excel which allows to define the scale of each leg of the axes indepentently
I tried to install the custom radar chart add-in from http://www.tushar-mehta.com, but it does not work
I use excel 2003 prof sp 2 with windows xp sp3
Comment from Shawn Mitchell
Time: Thursday, March 18, 2010, 5:08 pm
Hi Jon,
Great blog! I am having a tough time with an Excel add-in and I’m not sure how you might be able to figure it out based on the information I have available, but I am going to give it a try.
I got a text book that came with a CD that contained an Excel add-in, which I installed (Excel 2007, just as you described). The book makes reference to a number of custom excel functions (OV_IR_FIXEDYIELD_DATE_YLD, etc.) and I figured that once I had installed the add-in I could just click on a cell and type =OV and I’d see the whole list of new functions, but I get nothing. And when I type in the whole function with arguments and hit enter I get a #NAME? error.
Like I said, not a lot to go on, but if you have any thoughts I love to hear them.
Thanks,
Shawn
Comment from Jon Peltier
Time: Thursday, March 18, 2010, 8:43 pm
If the functions are public functions in the add-in, they will appear in the Insert Function dialog, with arguments clearly listed. Even a private function will work in a cell, and if you type it in, equals, function name, open parenthesis, then open the Insert Formula dialog, it won’t tell you what the arguments have to be, but it will tell you the value of the function.
Even if the add-in isn’t installed, but only opened as a workbook (double clicked from Windows Explorer), the functions should work.
#NAME? means Excel doesn’t recognize the name of the function that you’ve typed in. Triple check that you have spelled the function name correctly. If Excel recognizes the function but the arguments are wrong, you’ll get #VALUE! instead.
Is there any other evidence that the add-in is properly installed? A project in the VB Editor, menu or ribbon elements, etc.?
Comment from Shawn Mitchell
Time: Friday, March 19, 2010, 9:39 am
Hey Jon, thanks for the quick reply (although I requested email notification and did not receive it).
Here’s what I found.
I’m running excel2007 and the add-in was written for excel2003. The default installation directory was …office11library and not office12library. The office11library directory was not permissioned by default to run add-in’s on my install, so I had to add a Trusted Location in the Trust Center and even then I’m guessing because of some difference between 2003 and 2007 the auto-complete wasn’t working so I had to go to Insert Function and select User Defined, which is a major drag.
Do you have any tricks for getting auto-complete to work on user defined functions so I can just start typing the function name (after an = of course) and have a list of matching functions pop up?
Shawn
Comment from Jon Peltier
Time: Friday, March 19, 2010, 11:32 am
Shawn -
I believe the auto-complete feature for functions is new in Excel 2007. I have not taken time yet to learn about it.
Comment from Anonymous
Time: Sunday, June 6, 2010, 2:30 pm
I have installed your LOESS add in, but am having trouble actually using it, how do I get to the above screens you have mentiond.
Thanks in advance
Rhodri
Comment from Jon Peltier
Time: Sunday, June 6, 2010, 10:28 pm
The Add-Ins dialog is accessible from the Tools menu > Add-Ins (Excel 2003) or the Office button > Excel Options > Add-Ins > Go (Excel 2007).
The LOESS dialog is accessible, after installation, from the PTS menu (Excel 2003) or from the Add-Ins tab (2007).
Comment from katherine
Time: Wednesday, July 21, 2010, 10:23 am
Jon,
I am new to excell as well — and am trying to use your LOESS add-in. I installed it and found it in my list of add-ins …. but … as silly a question as this is — I can’t figure out how access it — say get to the dialog boxes you made and everything… if I got to the VBA interface – how do I implement it? –maybe just a couple hints to get started, and then I can figure the rest out? Thanks!!
Comment from Jon Peltier
Time: Thursday, July 22, 2010, 1:24 pm
Katharine -
The LOESS utility should add a menu called PTS Charts (Excel 2003 and earlier) or a group on the Add-Ins ribbon tab also called PTS Charts (Excel 2007 and later), and on PTS Charts you should see a button for LOESS.
You could also press Alt+F8 to open the Macros dialog, enter LoessDialog into the macro name box, and press Enter. It’s less convenient, but gets the job done.
Comment from naveen
Time: Thursday, July 29, 2010, 12:15 pm
Great info in your blog. I have been looking for the intellisense answer forevevr.
A follow up to the intellisense question. It is best explained through an example. Say I create test1.xlsm with a Function myAdd(). Now I save this as an add-in as test1.xlam I also change the vbproject to TestProject and name the add-in Test Addin. Test Addin shows up in the add-in list, I enable it but myAdd does not show up in subsequently opened new workbooks.
Going back to your response, are you suggesting I try to reopen test1.xlsm and include a reference to “Test Addin” (Which in this case will be itself?) Then resave it as test1.xlam. Will I then be able to see myAdd() in the intellisense list of functions when I type =myA ?
Thanks much
Comment from Jon Peltier
Time: Thursday, July 29, 2010, 2:20 pm
Naveen -
I don’t know how to make a function from an add-in appear in the list, the way a function in that same workbook appears. Jan Karel Pieterse shows a way to register your function, which may help, in Registering a User Defined Function with Excel.
Pingback from Links: Como instalar un Add in (Complemento) de Excel « Optimización y Estadística (SOE SC)
Time: Thursday, August 12, 2010, 10:28 am
[...] Installing an Excel Add-In [...]
Comment from Mike
Time: Tuesday, August 17, 2010, 4:29 pm
I have created an excel add-in with multiple UDF and would like to deploy it to multiple users. However, when a UDF is used in a spreadsheet it hard wires the add-in functions file location so when another uses opens the file they get a #NAME? unless the file is installed in the exact same directory structure. Is there a way around this?
Thanks.



















Write a comment
I welcome comments from my readers. If you have an opinion on this post, if you have a question or if there is anything to add, I want to hear from you. Whether you agree or disagree, please join the discussion.
If you want to include an image in your comment, post it on your own site or on one of the many free image sharing sites, and include a link in your comment. I'll download your image and insert the necessary html to display the image inline.
Read the PTS Blog Comment Policy.