No Microsoft Word, como desabilitar as teclas de atalho do tipo de letra de alterar o tipo de letra quando nada é selecionado?

1

Peço desculpas pelo título confuso. Aqui está uma explicação do comportamento que gostaria de personalizar.

No Microsoft Word, as teclas de atalho "typeface" ( Ctrl + I , Ctrl + B , Ctrl + U ) têm duas funções :

  1. para alterar o tipo de letra do texto já digitado; e
  2. para alterar o tipo de letra que será usado para o texto prestes a ser digitado.

O papel (1), por sua vez, ocorrerá em dois contextos diferentes:

  • (a) quando o texto é selecionado; e
  • (b) quando o cursor está posicionado no meio de uma palavra.

É o contexto (b) que está me dando dificuldade, porque interfere nas "alterações de trilha" (a explicação completa é complicada, mas, basicamente, o Word trata um cursor como "no meio de uma palavra" mesmo se metade a palavra é "inserida" e a outra metade é "excluída" - possivelmente um bug).

Gostaria, portanto, de desabilitar (b). Especificamente, eu gostaria de fazer com que, quando Ctrl + I fosse pressionado e nenhum texto fosse selecionado, nenhum tipo de letra fosse alterado.

Isso é possível?

    
por Owen 06.09.2018 / 22:52

1 resposta

0

Sim, com as três sub-rotinas VBA a seguir adicionadas ao seu modelo Normal ou adicionadas a um modelo personalizado separado que é carregado na pasta Startup do Word ou no próprio documento se ele fosse um documento ".docm" habilitado para macro. / p>

Sub Bold()
'
' Bold Macro
' Makes the selection bold (toggle)
'
    If Not Selection.Range.Start = Selection.Range.End Then
        Selection.Font.Bold = wdToggle
    End If

End Sub
Sub Italic()
'
' Italic Macro
' Makes the selection italic (toggle)
'
    If Not Selection.Range.Start = Selection.Range.End Then
        Selection.Font.Italic = wdToggle
    End If

End Sub
Sub Underline()
'
' Underline Macro
' Formats the selection with a continuous underline (toggle)
'
    If Not Selection.Range.Start = Selection.Range.End Then
        If Selection.Font.Underline = wdUnderlineNone Then
            Selection.Font.Underline = wdUnderlineSingle
        Else
            Selection.Font.Underline = wdUnderlineNone
        End If
    End If

End Sub
    
por 07.09.2018 / 12:56