How do I remove the hotkey from a macro which does NOT appear in Tools > Macro > Macros?
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.
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.
I use this add-in in various versions of Excel, so if the instructions vary by version, please let me know.
Thank you!
Additional info: The add-in (I wrote it) does not set a shortcut key. It is being assigned unilaterally by Excel.
Private Sub Workbook_Open()
Set XLApp = New clsExcelEvents ' start monitoring events
Set SC = New clsStatementConverter ' initialize some variables
If CountVisibleWorkbooks > 0 Then
Call SetMenuOptions ' update the menu bar
End If
End Sub
SetMenuOptions():
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) > 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 = "&Convert to QB" Then
blnMenuIsInstalled = True
End If
Next
'
If blnMenuIsInstalled Then
Set cbcConverterMenu = cbcMenu.Controls("&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 <> "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 & Application.PathSeparator
' Test for the system config filename
SC.SystemConfigFilename = GetConfigFilename(SC, True)
' Was a system config file found?
If SC.SystemConfigFilename <> "" 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 """ & strMenuItem & """'"
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
Click File > Options > Customize Ribbon then follow these instructions for the addition or removal or shortcuts: https://support.office.com/en-us/article/customize-keyboard-shortcuts-9a92343e-a781-4d5a-92f1-0f32e3ba5b4d
If you created a ribbon the shortcuts should show up under the Customize Ribbon tab. If all else fail you could always reassign the original shortcut to something else as well as to not to collide with the new Excel shortcut assignment.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.