Como excluo toda a lista de substituição enquanto você digita do MS Word?

1

Preciso excluir a maioria das entradas da lista de substituição enquanto você digita na AutoCorreção do Word. Eu só preciso de algumas entradas e excluir todos os indesejados, um por um, usando o botão de exclusão fornecido levaria muito tempo. Eu encontrei uma macro que faz backup e restaura a lista. Está aqui:

link

Pensei que poderia usar isso para exportar a lista para um documento do Word, excluir a maioria das entradas que não desejava e "restaurar" usando a lista modificada. Mas isso só me permite alterar as entradas existentes. Não consigo excluir entradas completamente. Deleções são apenas ignoradas.

Alguém tem uma sugestão para excluir entradas?

    
por user348514 01.02.2015 / 19:03

1 resposta

0

Você pode fazer isso com uma macro. Você pode querer fazer backup de seu arquivo de correção automática primeiro.

Em um documento em branco, vá para a guia Desenvolvedor e clique no botão do Visual Basic na extrema esquerda. Acabei de adicionar o seguinte código a "ThisDocument".

ETAPA 1: Use uma macro para criar uma tabela com todas as entradas de correção automática existentes.

Sub getACentriesTable ()

Dim z As Integer

z = Application.AutoCorrect.Entries.Count

Dim i como Integer

Para i = 1 Para z

Selection.InsertAfter Application.AutoCorrect.Entries(i).Name & vbTab & Application.AutoCorrect.Entries(i).Value & vbCr

Próxima i

Selection.ConvertToTable

End Sub

Quando você executar a macro acima getACEntriesTable, deverá obter uma tabela de duas colunas em seu documento, listando todas as entradas de autocorreção atuais.

Você pode passar pela tabela e excluir todas as entradas que NÃO QUER MANTER.

ETAPA 2: Use uma macro para excluir TODAS as entradas de correção automática e, em seguida, reimporte apenas as entradas da tabela.

Sub resetACentries ()

'APAGAR todas as entradas de correcção automática

Dim z As Integer

z = Application.AutoCorrect.Entries.Count

Dim i como Integer

Para i = z a 1 passo -1

Application.AutoCorrect.Entries(i).Delete

'NB: looping through items from end to start so index number is correct after each deletion (will only be z number of entries at very start, will decrease by 1 each loop)

Próxima i

'ADD BACK nas entradas que você deixou na tabela deste documento

Dim tblRow como linha

Para cada tblRow em Selection.Tables (1) .Rows

Application.AutoCorrect.Entries.Add Left(tblRow.Cells(1).Range.Text, Len(tblRow.Cells(1).Range.Text) - 2), Left(tblRow.Cells(2).Range.Text, Len(tblRow.Cells(2).Range.Text) - 2)

'NB não quer os últimos dois caracteres marcadores ocultos na célula da tabela, apenas a string de texto real, então o comprimento da string - 2

Próximo

End Sub

    
por 31.03.2016 / 04:06