32

Is it possible to write a VBA script in one workbook, and use it in other workbooks in the machine? I guess I'm looking for a way to write a macro package.

EDIT Following the instruction in the link given by Lance, I managed to create the addin, but I cannot see it in the 'Macros' tab. What am I missing?

5 Answers 5

11

There are a few ways to do this, here's one link that explains how to create an Excel Addin with VBA code. You can also create other types of addins in other ways, but this is the simplest. There are thousands of references you can search for that talk about how to do this.

3
  • doesn't answer the question at all
    – johny why
    May 3, 2021 at 8:01
  • 1
    @johnywhy Yes, an addin is something available to all workbooks. And if you read the question you'll see the OP used my link to do that. May 4, 2021 at 13:47
  • i misread the question. Addin macros can be executed from the Macro ribbon. But, addin VBA functions aren't visible to other VBA projects in the VBA IDE -- they aren't listed in the Object Browser.
    – johny why
    May 5, 2021 at 15:31
17

No addon making required!

Store it in a special workbook called Personal.xlsb

Steps:

You can make macros available across all your workbooks, by saving them to a special workbook that Excel loads each time it is opened.

4
  • This is good only if other users does not have their own set of VBA codes in that .xlsb file. I have not tested what will happen if Sub name clash between multiple .xlsb file in XLSTART folder
    – PatricK
    Mar 3, 2015 at 5:11
  • 1
    @PatricK Of course not. It works with multiple users in a windows machine. Each user gets their own XLSTART folder. Notice that path to XLSTART looks like C:\Users\<UserName>\AppData\Roaming\Microsoft\Excel\XLSTART . Since there is a Username, its different for each user Mar 3, 2015 at 15:24
  • The linked video has been deleted. I'm editing the answer to remove it. Feel free to add a new link if you have one.
    – Kelderic
    Mar 13, 2017 at 13:02
  • 1
    @AndyMercer thanks for editing the answer. The content on the web is so ephemeral. Hopefully, the personal.xlsb hint allows people to figure it out with the help of google. I shall update the answer if I happen to do this again. Mar 16, 2017 at 17:43
2

Take advantage of the UserProfile environment variable to aviod that 'different for each user' caveat.

so the standardized Path is: %UserProfile%\AppData\Roaming\Microsoft\Excel\XLSTART

2

When you record a Macro you can store it afterwards in your Personal Macro Workbook. When you Exit Excel it asks if you want to store it, once you click yes the Macro will become available for all workbooks under Developer => Macros. See also Microsoft support

0
1

How to locate the XLStart folder

-1.Click the Microsoft Office Button Office button image , and then click Excel Options.
-2.Click Trust Center, and then under Microsoft Office Excel Trust Center, click Trust Center Settings.
-3.Click Trusted Locations, and then verify the path to the XLStart folder in the list of trusted locations.

1
  • ...or, just hit the Windows key and type XLSTART.
    – ashleedawg
    Oct 6, 2018 at 5:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .