Hi Digip,
I have been running Excel for many years using DDE Links to eSignal for
real time stock prices. It's latest version loaded a Toolbar called
SigTools to Excel to "help" insert the DDE links.
It works fine but it now loads the SigTool toolbar on EVERY existing
spreadsheet and any new ones I create! Sure I can go to View>Toolbars>
and uncheck it but it loads on sheets I don't need it on! And it is a
pain because it ALWAYS creats a new row to the toolbars even though it
is plenty small enough to fit in available space...
Toolbars are not by default attached to workbooks. Below is my
boilerplate explanation about them.
To prevent a toolbar from reappearing, you can disable it using the
immediate window in the VBE.
- hit Alt-F11 to open the Visual Basic Editor
- hit control-g to open the immediate window
- type this into it:
Application.Commandbars("SigTool").Enabled=False
and hit enter.
To get it back, do the same with True as the argument.
Excel keeps toolbar and menubar customizations in a file with the
extension .xlb. The exact filename depends on Excel version and install,
but usually is: Excel9.xlb or Excel.xlb or Username8.xlb.
Often this file can be found in your WINDOWS directory.
You can attach a toolbar to a workbook. When this workbook is loaded, XL
checks if the toolbar is on the system. If not, it copies the toolbar
from the workbook to the system.
After creating *or changing* the toolbar, you should attach the toolbar
to your workbook:
- activate the workbook to which you want to attach the toolbar
- Rightclick the toolbar, select 'customize'
- Click 'Attach' (Toolbars Tab)
- If the workbook already contains a toolbar by that name, delete it
first by clicking on it on the righthand side and choosing Delete.
- Select your toolbar (on the left) and press 'copy'
- Save the workbook (optionally: save_as an add-in).
Also, you should include code that deletes the toolbar when your workbook
or add-in is closed, so that when you deliver a new version of your
workbook the new toolbar will be used i.s.o the old one. You can do that
in the Thisworkbook module, using the Workbook_BeforeClose event:
Private Sub Workbook_BeforeClose(Cancel as Boolean)
On Error Resume Next 'In case Toolbar is absent
Application.CommandBars("YourBarsName").Delete
End Sub
Excel bewaart knoppenbalken in een bestand op de harde schijf, genaamd
Excel.xlb of Username8.xlb, afhankelijk van de XL versie.
Je kunt een knoppenblak echter "Toevoegen" aan een werkboek (en dus aan
een add-in): Rechtsklikken op werkbalk, aanpassen, dan toevoegen klikken.
vervolgens werkboek opslaan.
Wat gebeurt er nu:
Als het bestand wordt geopend, kijkt XL of er een knoppenbalk in het
systeem staat met dezelfde naam. Zo ja, dan doet Excel niets en wordt de
"systeem" balk gebruikt. Zo nee, dan wordt de balk van het werkboek
gekopieerd naar het systeembestand (excel.xlb).
Wil je dus dat jouw knoppenbalk actueel blijft, dan moet je het werkboek
voorzien van code dat bij het sluiten de knoppenbalk weghaalt. Bij
herladen wordt dan de balk uit het bestand gebruikt.
(In de Thisworkbook module)
Private Sub Workbook_BeforeClose(Cancel as Boolean)
On Error Resume Next
Application.Commandbars("JouwKnoppenbalk").Delete
End Sub
Als je een add-in hebt gemaakt, dan kan je deze gewoon ergens in een zelf
te kiezen directory plaatsen. In Excel "installeer" je de addin dan door
Tools, add-ins te kiezen (Extra, invoegtoepassingen), op browse te
klikken en het bestand op te zoeken.
Je kunt dat ook automatiseren, zie bijvoorbeeld mijn Name Manager utility
van
www.jkp-ads.com . Bekijk de code in "Setup Name Manager.xls".
Regards,
Jan Karel Pieterse
Excel MVP
www.jkp-ads.com