title: Excel Add-in: How to remove macro hotkey
body: <p>How do I remove the hotkey from a macro which does NOT appear in Tools > Macro > Macros?</p>
  
  <p>I installed an add-in and Excel has automatically assigned the hotkey "CTRL+U" to it. I want Ctrl+U to retain its original function, underlining text in a cell. </p>
  
  <p>Please note that the add-in (.xla) is run from the Excel menu bar -- it is NOT visible from Tools > Macros > Macros, so there is no way to alter the hotkey from Tools > Macros > Macros >  Options.</p>
  
  <p>I use this add-in in various versions of Excel, so if the instructions vary by version, please let me know.</p>
  
  <p>Thank you!</p>
  
  <p>Additional info: The add-in (I wrote it) does not set a shortcut key. It is being assigned unilaterally by Excel.</p>
  
  <pre><code>Private Sub Workbook_Open()
    Set XLApp = New clsExcelEvents  ' start monitoring events
    Set SC = New clsStatementConverter  ' initialize some variables
    If CountVisibleWorkbooks &gt; 0 Then
       Call SetMenuOptions  ' update the menu bar
    End If  
  End Sub
  </code></pre>
  
  <p>SetMenuOptions():</p>
  
  <pre><code>Public Sub SetMenuOptions(Optional IsDisableOptions As Boolean = False)
  ' Set the enabled/disabled status of the "Convert to QB" menu options
  '
  ' If config files exist in the same directory as the current workbook,
  '   enable the menu options. Otherwise, disable.
  ' To force the sub-menu to be disabled (last visible workbook is
  '   being closed), set IsDisableOptions to True
  '
  On Error GoTo Error_Handler
  Dim blnEnableOptions As Boolean
  ' Default to menu options not enabled
  blnEnableOptions = False
  Application.ScreenUpdating = False
  '
  ' Is a visible workbook open?
  If (Not IsDisableOptions) And (Not ActiveWorkbook Is Nothing) Then
    ' Yes, there is an active workbook. Are any of my config files in
    ' the same directory as this workbook?
    Dim aryFiles() As String
    aryFiles = GetListOfConfigFiles(ActiveWorkbook.Path)
    ' Are there any files? (is the array initialized?)
    If IsInitializedArray(aryFiles) Then
      If (UBound(aryFiles) &gt; 0) Then
        ' Yes, there is at least one config file
        blnEnableOptions = True
      End If
    End If
  End If
  '
  ' If disable: set all options to disabled, except for the "About..."
  ' If enable: (1) set all _installed_ converters to enabled (if a converter
  '                has not been installed, don't enable it)
  '            (2) enable all other menu options
  '            (3) rebuild the list of config files
  Dim cbcMenu As CommandBar
  Dim cbcConverterMenu As CommandBarControl
  Dim cbcViewConfigMenu As CommandBarControl
  Dim cbcControl As CommandBarControl
  Dim blnMenuIsInstalled As Boolean
  '
  Set cbcMenu = Application.CommandBars("Worksheet Menu Bar")
  '
  ' Is the Converter menu installed?
  ' This Sub is called after the menu is deleted (when the add-in is uninstalled), so
  ' trap for the menu not existing before enabling/disabling the sub-menu options, below
  blnMenuIsInstalled = False
  For Each cbcControl In cbcMenu.Controls
    If cbcControl.Caption = "&amp;Convert to QB" Then
      blnMenuIsInstalled = True
    End If
  Next
  '
  If blnMenuIsInstalled Then
    Set cbcConverterMenu = cbcMenu.Controls("&amp;Convert to QB")
    Set cbcViewConfigMenu = cbcConverterMenu.Controls("View config...")
    '
    ' Step 1: Disable/Enable the controls for this menu
    '   If Disable, then disable all controls except "About"
    '   If Enable, then enable all controls for which converters are installed
    For Each cbcControl In cbcConverterMenu.Controls
      ' Keep "About" enabled
      If cbcControl.Caption &lt;&gt; "About..." Then
        cbcControl.Enabled = blnEnableOptions
      End If
    Next
    '
    ' Step 2: Rebuild the list of config files
    If blnEnableOptions Then
      ' If a system configuration file exists in the ActiveWorkbook directory, read it
      SC.ConfigFilePath = ActiveWorkbook.Path &amp; Application.PathSeparator
      ' Test for the system config filename
      SC.SystemConfigFilename = GetConfigFilename(SC, True)
      ' Was a system config file found?
      If SC.SystemConfigFilename &lt;&gt; "" Then
        ' Yes, get user settings from the config file
        Call GetConfigSettings(SC.ConfigFilePath, SC.SystemConfigFilename)
      End If
      '
      ' Delete the existing menu options to view config files
      For Each cbcControl In cbcViewConfigMenu.Controls
        cbcControl.Delete
      Next
      ' Add a menu option to view for each config file
      Dim lCtr As Long, strMenuItem As String
      For lCtr = 1 To UBound(aryFiles)
        strMenuItem = aryFiles(lCtr)
        With cbcViewConfigMenu
          .Controls.Add(type:=msoControlButton).Caption = strMenuItem
          .Controls(strMenuItem).OnAction = "'ThisWorkbook.ViewTextFile """ &amp; strMenuItem &amp; """'"
        End With
      Next
    End If
  End If
  Application.ScreenUpdating = True
  GoTo Exit_Handler
  
  Error_Handler:
    MsgBox Err.Number, "SetMenuOptions", Err.Description, Err.HelpFile, Err.HelpContext
    GoTo Exit_Handler
  
  Exit_Handler:
    Exit Sub
  
  End Sub
  </code></pre>