0

[ツール] > [マクロ] > [マクロ] に表示されないマクロからホットキーを削除するにはどうすればよいですか?

アドインをインストールしたところ、Excel によってホットキー "CTRL+U" が自動的に割り当てられました。セル内のテキストに下線を引く Ctrl+U の元の機能を保持したい。

アドイン (.xla) は Excel のメニュー バーから実行されることに注意してください。[ツール] > [マクロ] > [マクロ] からは表示されないため、[ツール] > [マクロ] > [マクロ] > [オプション] からホットキーを変更する方法はありません。

このアドインはさまざまなバージョンの Excel で使用しているため、バージョンによって手順が異なる場合はお知らせください。

ありがとうございました!

追加情報: アドイン (私が作成) はショートカット キーを設定しません。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
4

1 に答える 1

0

[ファイル] > [オプション] > [リボンのカスタマイズ] をクリック し、追加、削除、またはショートカットについては、次の手順に従います: https://support.office.com/en-us/article/customize-keyboard-shortcuts-9a92343e-a781-4d5a-92f1-0f32e3ba5b4d

リボンを作成した場合、ショートカットは [リボンのカスタマイズ] タブの下に表示されます。他のすべてが失敗した場合は、元のショートカットを別のものにいつでも再割り当てでき、新しい Excel ショートカットの割り当てと衝突しないようにすることもできます。

于 2018-04-25T19:02:54.643 に答える