I have an excel macro saved in a blank workbook and multiple data workbooks.
I currently open the macro file and each data file individually, running the macro on each one with a keyboard shortcut.
Is there a way to run the macro on all the data workbooks without opening them, either with
- a batch file,
- VBA/VBScript,
- powershell,
- or something similar?
One way to do this is to add your macro’s to the file PERSONAL.XLSB. This file will be loaded in the background every time you start Excel. Initially the PERSONAL.XLSB file will NOT be there.
To automatically create this file, just start recording a “dummy” macro (with the record button on the left-bottom of a spreadsheet) and select “Personal Macro Workbook” to store it in. After recording your macro, you can open the VBA editor with [Alt]+[F10] and you will see the PERSONAL.XLSB file with the “dummy” macro.
I use this file to store loads of general macro’s which are always available. I have added these macro’s to my own menu ribbon.
One disadvantage of this common macro file is that if you launch more than one instance of Excel, you will get an error message that the PERSONAL.XLSB file is already in use by Excel instance Nr. 1. This is no problem as long as you do not add new macro’s at this moment.