Do you like to write macros in Excel? If yes, then probably
you have already met the moment when you were annoyed to remember all keyboard shortcuts
of your macros or even worse, to find a new one and not already used. In addition,
it's quite comfortable to have at disposal help for macros, some "how it works" - especially
for that ones, which you don't use each day. If you agree, this small add-in could help you.
Personal Subs is a MS Excel add-in. It simplifies call of your personal macros, allows you to call them directly from application toolbar and it is capable to provide help for included macros. It's great tool for studing, testing and using Excel macros.
Testified in MS Excel 2002/2003/2007. It should work also in Excel 97/2000.
Install:
Uninstall:

Note: Additional controls are launched directly after their selection from the list. Repetition of the same control can be launched by Run button.
PS Toolbar should not raise any untreated errors. Errors raised during execution of your macros should not influence functionality of Personals Subs Toolbar. If yes, please let me know.
Note: If after a tough debugging you get into situation, that whatever you do to eliminate bugs still you get problems to run code correctly, then try to save all your project and restart Excel. Sometimes it helps - mostly in the case when there are global variables and after all the error breaks, Excel doesn't arrive to treat them correctly. Of course, restarting Excel you will not eliminate real bugs hidden in the code.
Note: If macro touch the content of sheet and the sheet is protected you will get warning that you can unwillingly change sheet content and formats.
ThisWorkbook module - contains all the code of Personal Subs Toolbar add-in. If you don't want to change the functionality of Toolbar then do not touch this code. All the other modules can be freely changed/renamed/deleted without any influence on functionality of Toolbar (of course it can influence functionality and accessibility of your macros).
PersonalSubs module - this is default source module for personal subs. Here you should put your macros which you would like to access form PS Toolbar. There are already some macros - all of them I have written to solve/simplify my excel tasks. Maybe you will find something useful for you. If not, just rewrite it.
GeneralFunctions module - it contains general functions to build the code of macros in PersonalSubs module. All this functions could be placed also directly in PersonalSubs module, but it would not be so transparent.
UserGuide module - contains this page in plain text version.
You can add your own modules and forms. To launch a form use a macro in source module.
Module PersonalSubs is default source module. It contains macros which will appear in the dropdown list of the Personal Subs Toolbar. Use _ Preferences >> Set Source Module to change the source module.
There are 4 rules to enter a new macro to any source module and make it visible in toolbar list:
Sub or
Public Sub statements, there is no input argument and the
declaration starts from the beginning of line without any preceding space:
'let's suppose that this comment is written from beginning of line
Sub MySub1()
...
End Sub
Item MySub1 will appear in
dropdown list
Note: If there is a space in front of declaration then the
macro is not visible in dropdown list: Sub MySub2()
...
End Sub
Item MySub2 will not appear in dropdown list
Sub MySub() 'My Sub Nickname
...
End Sub
Item My Sub Nickname will appear in dropdown list
Note: As a nickname is considered only commented text until the next apostrophe:
Sub MySub() 'My Sub Nickname 'just a comment
...
End Sub
Item My Sub Nickname will appear in dropdown list
Sub MySub() 'MySubNickname
'help text line 1
'help text line 2
'help text line 3
...(any uncommented code)
'just a comment
...
End Sub
Text help text line 1,2,3
will appear after click on Help button or on drag the cursor over list control, when
MySubNickname selected
" ---". To place a
divider between different groups of macros put a divider prefix at the beginning
of commented line. All text introduced behind the divider prefix until the end of
line or next apostrophe is included in to divider:
'*** SOURCE MODULE CODE *** | *** DROPDOWN LIST ITEMS *** |
| |
' --- Group 1 ---' just a comment | --- Group 1 --- |
| MySub1Nickname |
Sub MySub1() 'MySub1Nickname | MySub2Nickname |
... | --- Group 2 -:- |
End Sub | MySub3Nickname |
| |
Sub MySub2() 'MySub2Nickname | |
... | |
End Sub | |
| |
' --- Group 2 -:- | |
| |
Sub MySub3() 'MySub3Nickname | |
... | |
End Sub |
Note: to define you own divider prefix put at the beginning of the source module
commented statement '#DividerPrefix and directly behind it put your
divider prefix enclosed in quotation marks:
'*** SOURCE MODULE CODE *** | *** DROPDOWN LIST ITEMS *** |
| |
'#DividerPrefix " ---<" | |
' ---< Group 1 >---' just a comment | ---< Group 1 >--- |
| MySub1Nickname |
Sub MySub1() 'MySub1Nickname | MySub2Nickname |
... | ---< Group 3 >--- |
End Sub | MySub3Nickname |
' --- Group 2 --- | |
Sub MySub2() 'MySub2Nickname | |
... | |
End Sub | |
| |
' ---< Group 3 >--- | |
| |
Sub MySub3() 'MySub3Nickname | |
... | |
End Sub |
The --- Group 2 --- is not recognized as divider.
Divider prefix can be composed from any writable ASCII chars except apostrophe. If the definition of divider prefix is not at the beginning of module or it contains apostrophe, then it is ignored and the default divider prefix is used.
Download the PS Toolbar here.