Ajcarr,
unfortunatelly, there is no MS Map with my office XP (???), so I can't test the map. However, maybe something below you will find usefull:
1. Try Msgbox Application.Caller in the code. When code is activated via clicking drawing object, object's name is returned, even when the "Msgbox.." is placed in nested sub. (Calling from activex control will produce an error.),
2. A part of the code can be in code modules of sheet/workbook, especially event procedures,
3. When dealing with buttons and other controls, first check if they are activex controls (from control toolbox) or form controls (forms). Activex controls can be edited only in VBA design mode, form controls can be selected after right-clicking them. The code behind activex controls is located (starts) on the sheet's code module, double-click to see it, For drawing objects and forms it is in a standard module. When you right-click such object and select "assign macro" you will see the name. (But if there is no macro behind the control, for activex control it will be generated, for the drawing object excel will show macro which does not exist.)
4. the code for full screen mode (Application.DisplayFullScreen=True/False) probably refreshes the map, see the full code behind the button,
5. with worksheet(...).EnableSelection=xlUnlockedCells you can limit selection in protected mode to not protected cells only.
As for the sample code above - insert a module with it, add any shape onto the sheet, right-click it and assign a macro named ProtectionSensitive. See the difference when you click the shape with protected/unprotected sheet.
combo