First off, at workbook open the commandbars are not populated. stick your code in a macro and run it after everything is populated. second, there is no control with id 3181 (just fyi) I looped through all of the id's and there is no 3181, this is the second one in the list. so, you'll need to add some error handling in there. like this
If Not myControle Is Nothing Then
'do the loop code
End If
because when a specific control is not found then myControl
gets set to Nothing
edit
because the command bars are not populated on workbook open, put the code in the "SheetActivate" method of the workbook, then in the workbook open put
Sheets(2).Activate
Sheets(1).Activate
this will force the sheetactivate event to fire. its there twice because if the workbook opens on the sheet that you put first, (in my example, sheet2) then the activate does not fire. so hense, activate sheet 2, then sheet 1 (incase sheet2 was already open when the workbook opened)