Excel adicionar atalhos de teclado de matemática

1

Como posso obter o excel 2013 para corrigir automaticamente as contas? Por exemplo, mude \ int para ∫. Eu sei como fazer isso por um símbolo, mas existe alguma maneira de obter o Excel para reconhecer todas as correções automáticas de matemática?

    
por Quantum spaghettification 02.11.2014 / 13:42

1 resposta

3

A Microsoft (em sua infinita sabedoria) não tem a opção Application.OMathAutoCorrect.UseOutsideOMath = True disponível nas opções do Excel ► Revisão ► Opções de AutoCorreção ► Correção Automática de Matemática ou diretamente por meio do VBA do Excel. IMHO, isso é provavelmente devido às limitações do Excel em exibir os caracteres Unicode verdadeiros e alguns caracteres ASCII regulares como o tick (também conhecido como aspas simples ou ASCII 039) que são usados para outros finalidades. Se algo não puder ser feito completamente e funcionar através de vários pacotes de idiomas opcionais, então todo o processo foi provavelmente arquivado até que uma resolução seja alcançada. Quando o Excel está dentro de seu editor de matemática, uma interface diferente está sendo trocada e todos os símbolos podem ser exibidos corretamente.

Eu preparei uma lista completa dos símbolos Math AutoCorrect no meu OneDrive aqui para você ver: Excel_2013_OMathAutoCorrectEntries.xlsx . Existem algumas omissões muito notáveis como \grave e \bar que o Excel corrige ou interpreta automaticamente para outros propósitos, mas a maioria dos símbolos são bons.

Isso significa apenas que temos que contornar a limitação e aceitar quaisquer deficiências. Enquanto o uso do VBA do Excel do objeto OMathAutoCorrect é um pouco aleijado, o do Word não é. Se tomarmos todas as entradas da coleção OMathAutoCorrectEntries e convertê-las como adições à coleção AutoCorrectEntries padrão, elas estarão disponíveis em todos os programas do Office, incluindo o Excel. Os resultados finais em cada um dos programas do Office podem variar.

Feche o Excel e todos os outros programas do Office e, em seguida, abra o Word em um novo documento em branco e toque em Alt+F11 para inserir o VBE. Use os menus suspensos para Inserir ► Módulo (ou Alt+I, M ). Cole o seguinte no novo painel intitulado algo como Normal - NewMacros (Code) ou Normal - Module1 (Code) .

Sub Normalize_Math_AutoCorrect_Entries()
    Dim acm As Long, ac As Long, yn As Long, cACEs As AutoCorrectEntries
    Set cACEs = Application.AutoCorrect.Entries
    With Application.OMathAutoCorrect
        .UseOutsideOMath = False    'no longer necessary
        For acm = 1 To .Entries.Count
            yn = vbYes
            For ac = 1 To cACEs.Count
                If cACEs(ac).Name = .Entries(acm).Name Then
                     yn = MsgBox(cACEs(ac).Name & " is currently assigned to " & cACEs(ac).Value & _
                       Chr(46) & Chr(10) & Chr(10) & "Are you sure you want to replace it?", _
                       vbYesNo + vbQuestion, "Duplication")
                    If yn = vbYes Then cACEs(ac).Delete
                    Exit For
                End If
            Next ac
            If yn = vbYes Then _
                Application.AutoCorrect.Entries.Add Name:=.Entries(acm).Name, Value:=.Entries(acm).Value
        Next acm
    End With
    Set cACEs = Nothing
End Sub

Com isso, toque em Alt+Q para retornar ao seu documento em branco. Toque em Alt+F8 para abrir a caixa de diálogo Macros e execute a macro. Se uma entrada duplicada for encontrada, o processo será pausado e você será apresentado a algo como o seguinte.

Notequeeuescolhiumquepoderealmenteserexibido.MuitosdoscaracteresUnicodeserãorepresentadosapenaspor?,poisumacaixademensagemVBApadrãonãopodeexibirUnicode.Issonãosignificaqueosímboloseráadicionadoincorretamente.ComooExcel,issoéumalimitaçãodeexibição.

Aceiteourejeiteassobregravações.QualquercoisaqueaindanãotenhasidoencontradanacoleçãopadrãoAutoCorrectEntriesseráadicionadasemperguntar.

Quandoesteprocessoestiverconcluído,todasasentradasOMathAutoCorrectterãosidonormalizadascomoentradaspadrãoAutoCorrect.SevocêabriroExcel,elesdevemestardisponíveisimediatamente.Aquiestáumantesedepoisdedigitaroespaçoqueforçaaautocorreçãoapós\beta.

Emumanotarelacionada,escreviumartigoháalgumtempoemquevocêpodeestarinteressadonousodefraçõesestilizadasnosprogramasdoOfficepormeiodeadiçõesàcoleçãoAutoCorrectpadrão.Aquiestáumlinkparaisso:

Styled Frações no Windows

Agora eu tenho que começar a escrever uma rotina de reversão para que as entradas possam ser removidas. Como há alguma duplicação entre as duas coleções, não sei como lidar com a confirmação, pois há um total de 496 entradas em uma coleção OMathAutoCorrect padrão.

    
por 02.11.2014 / 18:32